diff --git a/flyteidl/gen/pb-cpp/flyteidl/admin/matchable_resource.pb.cc b/flyteidl/gen/pb-cpp/flyteidl/admin/matchable_resource.pb.cc index 82edc1a1ec..8bd580b5d2 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/admin/matchable_resource.pb.cc +++ b/flyteidl/gen/pb-cpp/flyteidl/admin/matchable_resource.pb.cc @@ -422,6 +422,7 @@ const ::google::protobuf::uint32 TableStruct_flyteidl_2fadmin_2fmatchable_5freso ~0u, // no _oneof_case_ ~0u, // no _weak_field_map_ PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ListMatchableAttributesRequest, resource_type_), + PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ListMatchableAttributesRequest, org_), ~0u, // no _has_bits_ PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ListMatchableAttributesResponse, _internal_metadata_), ~0u, // no _extensions_ @@ -442,7 +443,7 @@ static const ::google::protobuf::internal::MigrationSchema schemas[] PROTOBUF_SE { 71, -1, sizeof(::flyteidl::admin::MatchingAttributes)}, { 85, -1, sizeof(::flyteidl::admin::MatchableAttributesConfiguration)}, { 96, -1, sizeof(::flyteidl::admin::ListMatchableAttributesRequest)}, - { 102, -1, sizeof(::flyteidl::admin::ListMatchableAttributesResponse)}, + { 103, -1, sizeof(::flyteidl::admin::ListMatchableAttributesResponse)}, }; static ::google::protobuf::Message const * const file_default_instances[] = { @@ -521,24 +522,25 @@ const char descriptor_table_protodef_flyteidl_2fadmin_2fmatchable_5fresource_2ep "ributes\030\001 \001(\0132\".flyteidl.admin.MatchingA" "ttributes\022\016\n\006domain\030\002 \001(\t\022\017\n\007project\030\003 \001" "(\t\022\020\n\010workflow\030\004 \001(\t\022\023\n\013launch_plan\030\005 \001(" - "\t\022\013\n\003org\030\006 \001(\t\"Z\n\036ListMatchableAttribute" + "\t\022\013\n\003org\030\006 \001(\t\"g\n\036ListMatchableAttribute" "sRequest\0228\n\rresource_type\030\001 \001(\0162!.flytei" - "dl.admin.MatchableResource\"k\n\037ListMatcha" - "bleAttributesResponse\022H\n\016configurations\030" - "\001 \003(\01320.flyteidl.admin.MatchableAttribut" - "esConfiguration*\340\001\n\021MatchableResource\022\021\n" - "\rTASK_RESOURCE\020\000\022\024\n\020CLUSTER_RESOURCE\020\001\022\023" - "\n\017EXECUTION_QUEUE\020\002\022\033\n\027EXECUTION_CLUSTER" - "_LABEL\020\003\022$\n QUALITY_OF_SERVICE_SPECIFICA" - "TION\020\004\022\023\n\017PLUGIN_OVERRIDE\020\005\022\035\n\031WORKFLOW_" - "EXECUTION_CONFIG\020\006\022\026\n\022CLUSTER_ASSIGNMENT" - "\020\007B=Z;github.com/flyteorg/flyte/flyteidl" - "/gen/pb-go/flyteidl/adminb\006proto3" + "dl.admin.MatchableResource\022\013\n\003org\030\002 \001(\t\"" + "k\n\037ListMatchableAttributesResponse\022H\n\016co" + "nfigurations\030\001 \003(\01320.flyteidl.admin.Matc" + "hableAttributesConfiguration*\340\001\n\021Matchab" + "leResource\022\021\n\rTASK_RESOURCE\020\000\022\024\n\020CLUSTER" + "_RESOURCE\020\001\022\023\n\017EXECUTION_QUEUE\020\002\022\033\n\027EXEC" + "UTION_CLUSTER_LABEL\020\003\022$\n QUALITY_OF_SERV" + "ICE_SPECIFICATION\020\004\022\023\n\017PLUGIN_OVERRIDE\020\005" + "\022\035\n\031WORKFLOW_EXECUTION_CONFIG\020\006\022\026\n\022CLUST" + "ER_ASSIGNMENT\020\007B=Z;github.com/flyteorg/f" + "lyte/flyteidl/gen/pb-go/flyteidl/adminb\006" + "proto3" ; ::google::protobuf::internal::DescriptorTable descriptor_table_flyteidl_2fadmin_2fmatchable_5fresource_2eproto = { false, InitDefaults_flyteidl_2fadmin_2fmatchable_5fresource_2eproto, descriptor_table_protodef_flyteidl_2fadmin_2fmatchable_5fresource_2eproto, - "flyteidl/admin/matchable_resource.proto", &assign_descriptors_table_flyteidl_2fadmin_2fmatchable_5fresource_2eproto, 2633, + "flyteidl/admin/matchable_resource.proto", &assign_descriptors_table_flyteidl_2fadmin_2fmatchable_5fresource_2eproto, 2646, }; void AddDescriptors_flyteidl_2fadmin_2fmatchable_5fresource_2eproto() { @@ -5547,6 +5549,7 @@ class ListMatchableAttributesRequest::HasBitSetters { #if !defined(_MSC_VER) || _MSC_VER >= 1900 const int ListMatchableAttributesRequest::kResourceTypeFieldNumber; +const int ListMatchableAttributesRequest::kOrgFieldNumber; #endif // !defined(_MSC_VER) || _MSC_VER >= 1900 ListMatchableAttributesRequest::ListMatchableAttributesRequest() @@ -5558,11 +5561,18 @@ ListMatchableAttributesRequest::ListMatchableAttributesRequest(const ListMatchab : ::google::protobuf::Message(), _internal_metadata_(nullptr) { _internal_metadata_.MergeFrom(from._internal_metadata_); + org_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + if (from.org().size() > 0) { + org_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.org_); + } resource_type_ = from.resource_type_; // @@protoc_insertion_point(copy_constructor:flyteidl.admin.ListMatchableAttributesRequest) } void ListMatchableAttributesRequest::SharedCtor() { + ::google::protobuf::internal::InitSCC( + &scc_info_ListMatchableAttributesRequest_flyteidl_2fadmin_2fmatchable_5fresource_2eproto.base); + org_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); resource_type_ = 0; } @@ -5572,6 +5582,7 @@ ListMatchableAttributesRequest::~ListMatchableAttributesRequest() { } void ListMatchableAttributesRequest::SharedDtor() { + org_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); } void ListMatchableAttributesRequest::SetCachedSize(int size) const { @@ -5589,6 +5600,7 @@ void ListMatchableAttributesRequest::Clear() { // Prevent compiler warnings about cached_has_bits being unused (void) cached_has_bits; + org_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); resource_type_ = 0; _internal_metadata_.Clear(); } @@ -5614,6 +5626,22 @@ const char* ListMatchableAttributesRequest::_InternalParse(const char* begin, co GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); break; } + // string org = 2; + case 2: { + if (static_cast<::google::protobuf::uint8>(tag) != 18) goto handle_unusual; + ptr = ::google::protobuf::io::ReadSize(ptr, &size); + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); + ctx->extra_parse_data().SetFieldName("flyteidl.admin.ListMatchableAttributesRequest.org"); + object = msg->mutable_org(); + if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) { + parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8; + goto string_till_end; + } + GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx)); + ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx); + ptr += size; + break; + } default: { handle_unusual: if ((tag & 7) == 4 || tag == 0) { @@ -5629,6 +5657,13 @@ const char* ListMatchableAttributesRequest::_InternalParse(const char* begin, co } // switch } // while return ptr; +string_till_end: + static_cast<::std::string*>(object)->clear(); + static_cast<::std::string*>(object)->reserve(size); + goto len_delim_till_end; +len_delim_till_end: + return ctx->StoreAndTailCall(ptr, end, {_InternalParse, msg}, + {parser_till_end, object}, size); } #else // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER bool ListMatchableAttributesRequest::MergePartialFromCodedStream( @@ -5655,6 +5690,21 @@ bool ListMatchableAttributesRequest::MergePartialFromCodedStream( break; } + // string org = 2; + case 2: { + if (static_cast< ::google::protobuf::uint8>(tag) == (18 & 0xFF)) { + DO_(::google::protobuf::internal::WireFormatLite::ReadString( + input, this->mutable_org())); + DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->org().data(), static_cast(this->org().length()), + ::google::protobuf::internal::WireFormatLite::PARSE, + "flyteidl.admin.ListMatchableAttributesRequest.org")); + } else { + goto handle_unusual; + } + break; + } + default: { handle_unusual: if (tag == 0) { @@ -5688,6 +5738,16 @@ void ListMatchableAttributesRequest::SerializeWithCachedSizes( 1, this->resource_type(), output); } + // string org = 2; + if (this->org().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->org().data(), static_cast(this->org().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.admin.ListMatchableAttributesRequest.org"); + ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased( + 2, this->org(), output); + } + if (_internal_metadata_.have_unknown_fields()) { ::google::protobuf::internal::WireFormat::SerializeUnknownFields( _internal_metadata_.unknown_fields(), output); @@ -5707,6 +5767,17 @@ ::google::protobuf::uint8* ListMatchableAttributesRequest::InternalSerializeWith 1, this->resource_type(), target); } + // string org = 2; + if (this->org().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->org().data(), static_cast(this->org().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.admin.ListMatchableAttributesRequest.org"); + target = + ::google::protobuf::internal::WireFormatLite::WriteStringToArray( + 2, this->org(), target); + } + if (_internal_metadata_.have_unknown_fields()) { target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray( _internal_metadata_.unknown_fields(), target); @@ -5728,6 +5799,13 @@ size_t ListMatchableAttributesRequest::ByteSizeLong() const { // Prevent compiler warnings about cached_has_bits being unused (void) cached_has_bits; + // string org = 2; + if (this->org().size() > 0) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::StringSize( + this->org()); + } + // .flyteidl.admin.MatchableResource resource_type = 1; if (this->resource_type() != 0) { total_size += 1 + @@ -5761,6 +5839,10 @@ void ListMatchableAttributesRequest::MergeFrom(const ListMatchableAttributesRequ ::google::protobuf::uint32 cached_has_bits = 0; (void) cached_has_bits; + if (from.org().size() > 0) { + + org_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.org_); + } if (from.resource_type() != 0) { set_resource_type(from.resource_type()); } @@ -5791,6 +5873,8 @@ void ListMatchableAttributesRequest::Swap(ListMatchableAttributesRequest* other) void ListMatchableAttributesRequest::InternalSwap(ListMatchableAttributesRequest* other) { using std::swap; _internal_metadata_.Swap(&other->_internal_metadata_); + org_.Swap(&other->org_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); swap(resource_type_, other->resource_type_); } diff --git a/flyteidl/gen/pb-cpp/flyteidl/admin/matchable_resource.pb.h b/flyteidl/gen/pb-cpp/flyteidl/admin/matchable_resource.pb.h index 1bd845f182..7fb9357061 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/admin/matchable_resource.pb.h +++ b/flyteidl/gen/pb-cpp/flyteidl/admin/matchable_resource.pb.h @@ -1841,6 +1841,20 @@ class ListMatchableAttributesRequest final : // accessors ------------------------------------------------------- + // string org = 2; + void clear_org(); + static const int kOrgFieldNumber = 2; + const ::std::string& org() const; + void set_org(const ::std::string& value); + #if LANG_CXX11 + void set_org(::std::string&& value); + #endif + void set_org(const char* value); + void set_org(const char* value, size_t size); + ::std::string* mutable_org(); + ::std::string* release_org(); + void set_allocated_org(::std::string* org); + // .flyteidl.admin.MatchableResource resource_type = 1; void clear_resource_type(); static const int kResourceTypeFieldNumber = 1; @@ -1852,6 +1866,7 @@ class ListMatchableAttributesRequest final : class HasBitSetters; ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_; + ::google::protobuf::internal::ArenaStringPtr org_; int resource_type_; mutable ::google::protobuf::internal::CachedSize _cached_size_; friend struct ::TableStruct_flyteidl_2fadmin_2fmatchable_5fresource_2eproto; @@ -3654,6 +3669,59 @@ inline void ListMatchableAttributesRequest::set_resource_type(::flyteidl::admin: // @@protoc_insertion_point(field_set:flyteidl.admin.ListMatchableAttributesRequest.resource_type) } +// string org = 2; +inline void ListMatchableAttributesRequest::clear_org() { + org_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline const ::std::string& ListMatchableAttributesRequest::org() const { + // @@protoc_insertion_point(field_get:flyteidl.admin.ListMatchableAttributesRequest.org) + return org_.GetNoArena(); +} +inline void ListMatchableAttributesRequest::set_org(const ::std::string& value) { + + org_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value); + // @@protoc_insertion_point(field_set:flyteidl.admin.ListMatchableAttributesRequest.org) +} +#if LANG_CXX11 +inline void ListMatchableAttributesRequest::set_org(::std::string&& value) { + + org_.SetNoArena( + &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:flyteidl.admin.ListMatchableAttributesRequest.org) +} +#endif +inline void ListMatchableAttributesRequest::set_org(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + org_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:flyteidl.admin.ListMatchableAttributesRequest.org) +} +inline void ListMatchableAttributesRequest::set_org(const char* value, size_t size) { + + org_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast(value), size)); + // @@protoc_insertion_point(field_set_pointer:flyteidl.admin.ListMatchableAttributesRequest.org) +} +inline ::std::string* ListMatchableAttributesRequest::mutable_org() { + + // @@protoc_insertion_point(field_mutable:flyteidl.admin.ListMatchableAttributesRequest.org) + return org_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline ::std::string* ListMatchableAttributesRequest::release_org() { + // @@protoc_insertion_point(field_release:flyteidl.admin.ListMatchableAttributesRequest.org) + + return org_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline void ListMatchableAttributesRequest::set_allocated_org(::std::string* org) { + if (org != nullptr) { + + } else { + + } + org_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), org); + // @@protoc_insertion_point(field_set_allocated:flyteidl.admin.ListMatchableAttributesRequest.org) +} + // ------------------------------------------------------------------- // ListMatchableAttributesResponse diff --git a/flyteidl/gen/pb-cpp/flyteidl/admin/project.pb.cc b/flyteidl/gen/pb-cpp/flyteidl/admin/project.pb.cc index b283c46bfb..03f21267d0 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/admin/project.pb.cc +++ b/flyteidl/gen/pb-cpp/flyteidl/admin/project.pb.cc @@ -205,6 +205,7 @@ const ::google::protobuf::uint32 TableStruct_flyteidl_2fadmin_2fproject_2eproto: PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ProjectListRequest, token_), PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ProjectListRequest, filters_), PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ProjectListRequest, sort_by_), + PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ProjectListRequest, org_), ~0u, // no _has_bits_ PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ProjectRegisterRequest, _internal_metadata_), ~0u, // no _extensions_ @@ -227,9 +228,9 @@ static const ::google::protobuf::internal::MigrationSchema schemas[] PROTOBUF_SE { 7, -1, sizeof(::flyteidl::admin::Project)}, { 19, -1, sizeof(::flyteidl::admin::Projects)}, { 26, -1, sizeof(::flyteidl::admin::ProjectListRequest)}, - { 35, -1, sizeof(::flyteidl::admin::ProjectRegisterRequest)}, - { 41, -1, sizeof(::flyteidl::admin::ProjectRegisterResponse)}, - { 46, -1, sizeof(::flyteidl::admin::ProjectUpdateResponse)}, + { 36, -1, sizeof(::flyteidl::admin::ProjectRegisterRequest)}, + { 42, -1, sizeof(::flyteidl::admin::ProjectRegisterResponse)}, + { 47, -1, sizeof(::flyteidl::admin::ProjectUpdateResponse)}, }; static ::google::protobuf::Message const * const file_default_instances[] = { @@ -260,19 +261,20 @@ const char descriptor_table_protodef_flyteidl_2fadmin_2fproject_2eproto[] = "\014ProjectState\022\n\n\006ACTIVE\020\000\022\014\n\010ARCHIVED\020\001\022" "\024\n\020SYSTEM_GENERATED\020\002\"D\n\010Projects\022)\n\010pro" "jects\030\001 \003(\0132\027.flyteidl.admin.Project\022\r\n\005" - "token\030\002 \001(\t\"j\n\022ProjectListRequest\022\r\n\005lim" + "token\030\002 \001(\t\"w\n\022ProjectListRequest\022\r\n\005lim" "it\030\001 \001(\r\022\r\n\005token\030\002 \001(\t\022\017\n\007filters\030\003 \001(\t" - "\022%\n\007sort_by\030\004 \001(\0132\024.flyteidl.admin.Sort\"" - "B\n\026ProjectRegisterRequest\022(\n\007project\030\001 \001" - "(\0132\027.flyteidl.admin.Project\"\031\n\027ProjectRe" - "gisterResponse\"\027\n\025ProjectUpdateResponseB" - "=Z;github.com/flyteorg/flyte/flyteidl/ge" - "n/pb-go/flyteidl/adminb\006proto3" + "\022%\n\007sort_by\030\004 \001(\0132\024.flyteidl.admin.Sort\022" + "\013\n\003org\030\005 \001(\t\"B\n\026ProjectRegisterRequest\022(" + "\n\007project\030\001 \001(\0132\027.flyteidl.admin.Project" + "\"\031\n\027ProjectRegisterResponse\"\027\n\025ProjectUp" + "dateResponseB=Z;github.com/flyteorg/flyt" + "e/flyteidl/gen/pb-go/flyteidl/adminb\006pro" + "to3" ; ::google::protobuf::internal::DescriptorTable descriptor_table_flyteidl_2fadmin_2fproject_2eproto = { false, InitDefaults_flyteidl_2fadmin_2fproject_2eproto, descriptor_table_protodef_flyteidl_2fadmin_2fproject_2eproto, - "flyteidl/admin/project.proto", &assign_descriptors_table_flyteidl_2fadmin_2fproject_2eproto, 750, + "flyteidl/admin/project.proto", &assign_descriptors_table_flyteidl_2fadmin_2fproject_2eproto, 763, }; void AddDescriptors_flyteidl_2fadmin_2fproject_2eproto() { @@ -1762,6 +1764,7 @@ const int ProjectListRequest::kLimitFieldNumber; const int ProjectListRequest::kTokenFieldNumber; const int ProjectListRequest::kFiltersFieldNumber; const int ProjectListRequest::kSortByFieldNumber; +const int ProjectListRequest::kOrgFieldNumber; #endif // !defined(_MSC_VER) || _MSC_VER >= 1900 ProjectListRequest::ProjectListRequest() @@ -1781,6 +1784,10 @@ ProjectListRequest::ProjectListRequest(const ProjectListRequest& from) if (from.filters().size() > 0) { filters_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.filters_); } + org_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + if (from.org().size() > 0) { + org_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.org_); + } if (from.has_sort_by()) { sort_by_ = new ::flyteidl::admin::Sort(*from.sort_by_); } else { @@ -1795,6 +1802,7 @@ void ProjectListRequest::SharedCtor() { &scc_info_ProjectListRequest_flyteidl_2fadmin_2fproject_2eproto.base); token_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); filters_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + org_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); ::memset(&sort_by_, 0, static_cast( reinterpret_cast(&limit_) - reinterpret_cast(&sort_by_)) + sizeof(limit_)); @@ -1808,6 +1816,7 @@ ProjectListRequest::~ProjectListRequest() { void ProjectListRequest::SharedDtor() { token_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); filters_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + org_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); if (this != internal_default_instance()) delete sort_by_; } @@ -1828,6 +1837,7 @@ void ProjectListRequest::Clear() { token_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); filters_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + org_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); if (GetArenaNoVirtual() == nullptr && sort_by_ != nullptr) { delete sort_by_; } @@ -1901,6 +1911,22 @@ const char* ProjectListRequest::_InternalParse(const char* begin, const char* en {parser_till_end, object}, ptr - size, ptr)); break; } + // string org = 5; + case 5: { + if (static_cast<::google::protobuf::uint8>(tag) != 42) goto handle_unusual; + ptr = ::google::protobuf::io::ReadSize(ptr, &size); + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); + ctx->extra_parse_data().SetFieldName("flyteidl.admin.ProjectListRequest.org"); + object = msg->mutable_org(); + if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) { + parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8; + goto string_till_end; + } + GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx)); + ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx); + ptr += size; + break; + } default: { handle_unusual: if ((tag & 7) == 4 || tag == 0) { @@ -1989,6 +2015,21 @@ bool ProjectListRequest::MergePartialFromCodedStream( break; } + // string org = 5; + case 5: { + if (static_cast< ::google::protobuf::uint8>(tag) == (42 & 0xFF)) { + DO_(::google::protobuf::internal::WireFormatLite::ReadString( + input, this->mutable_org())); + DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->org().data(), static_cast(this->org().length()), + ::google::protobuf::internal::WireFormatLite::PARSE, + "flyteidl.admin.ProjectListRequest.org")); + } else { + goto handle_unusual; + } + break; + } + default: { handle_unusual: if (tag == 0) { @@ -2047,6 +2088,16 @@ void ProjectListRequest::SerializeWithCachedSizes( 4, HasBitSetters::sort_by(this), output); } + // string org = 5; + if (this->org().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->org().data(), static_cast(this->org().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.admin.ProjectListRequest.org"); + ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased( + 5, this->org(), output); + } + if (_internal_metadata_.have_unknown_fields()) { ::google::protobuf::internal::WireFormat::SerializeUnknownFields( _internal_metadata_.unknown_fields(), output); @@ -2094,6 +2145,17 @@ ::google::protobuf::uint8* ProjectListRequest::InternalSerializeWithCachedSizesT 4, HasBitSetters::sort_by(this), target); } + // string org = 5; + if (this->org().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->org().data(), static_cast(this->org().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.admin.ProjectListRequest.org"); + target = + ::google::protobuf::internal::WireFormatLite::WriteStringToArray( + 5, this->org(), target); + } + if (_internal_metadata_.have_unknown_fields()) { target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray( _internal_metadata_.unknown_fields(), target); @@ -2129,6 +2191,13 @@ size_t ProjectListRequest::ByteSizeLong() const { this->filters()); } + // string org = 5; + if (this->org().size() > 0) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::StringSize( + this->org()); + } + // .flyteidl.admin.Sort sort_by = 4; if (this->has_sort_by()) { total_size += 1 + @@ -2178,6 +2247,10 @@ void ProjectListRequest::MergeFrom(const ProjectListRequest& from) { filters_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.filters_); } + if (from.org().size() > 0) { + + org_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.org_); + } if (from.has_sort_by()) { mutable_sort_by()->::flyteidl::admin::Sort::MergeFrom(from.sort_by()); } @@ -2215,6 +2288,8 @@ void ProjectListRequest::InternalSwap(ProjectListRequest* other) { GetArenaNoVirtual()); filters_.Swap(&other->filters_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); + org_.Swap(&other->org_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); swap(sort_by_, other->sort_by_); swap(limit_, other->limit_); } diff --git a/flyteidl/gen/pb-cpp/flyteidl/admin/project.pb.h b/flyteidl/gen/pb-cpp/flyteidl/admin/project.pb.h index 4645e8bf9c..33b8879252 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/admin/project.pb.h +++ b/flyteidl/gen/pb-cpp/flyteidl/admin/project.pb.h @@ -727,6 +727,20 @@ class ProjectListRequest final : ::std::string* release_filters(); void set_allocated_filters(::std::string* filters); + // string org = 5; + void clear_org(); + static const int kOrgFieldNumber = 5; + const ::std::string& org() const; + void set_org(const ::std::string& value); + #if LANG_CXX11 + void set_org(::std::string&& value); + #endif + void set_org(const char* value); + void set_org(const char* value, size_t size); + ::std::string* mutable_org(); + ::std::string* release_org(); + void set_allocated_org(::std::string* org); + // .flyteidl.admin.Sort sort_by = 4; bool has_sort_by() const; void clear_sort_by(); @@ -749,6 +763,7 @@ class ProjectListRequest final : ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_; ::google::protobuf::internal::ArenaStringPtr token_; ::google::protobuf::internal::ArenaStringPtr filters_; + ::google::protobuf::internal::ArenaStringPtr org_; ::flyteidl::admin::Sort* sort_by_; ::google::protobuf::uint32 limit_; mutable ::google::protobuf::internal::CachedSize _cached_size_; @@ -1757,6 +1772,59 @@ inline void ProjectListRequest::set_allocated_sort_by(::flyteidl::admin::Sort* s // @@protoc_insertion_point(field_set_allocated:flyteidl.admin.ProjectListRequest.sort_by) } +// string org = 5; +inline void ProjectListRequest::clear_org() { + org_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline const ::std::string& ProjectListRequest::org() const { + // @@protoc_insertion_point(field_get:flyteidl.admin.ProjectListRequest.org) + return org_.GetNoArena(); +} +inline void ProjectListRequest::set_org(const ::std::string& value) { + + org_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value); + // @@protoc_insertion_point(field_set:flyteidl.admin.ProjectListRequest.org) +} +#if LANG_CXX11 +inline void ProjectListRequest::set_org(::std::string&& value) { + + org_.SetNoArena( + &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:flyteidl.admin.ProjectListRequest.org) +} +#endif +inline void ProjectListRequest::set_org(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + org_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:flyteidl.admin.ProjectListRequest.org) +} +inline void ProjectListRequest::set_org(const char* value, size_t size) { + + org_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast(value), size)); + // @@protoc_insertion_point(field_set_pointer:flyteidl.admin.ProjectListRequest.org) +} +inline ::std::string* ProjectListRequest::mutable_org() { + + // @@protoc_insertion_point(field_mutable:flyteidl.admin.ProjectListRequest.org) + return org_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline ::std::string* ProjectListRequest::release_org() { + // @@protoc_insertion_point(field_release:flyteidl.admin.ProjectListRequest.org) + + return org_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline void ProjectListRequest::set_allocated_org(::std::string* org) { + if (org != nullptr) { + + } else { + + } + org_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), org); + // @@protoc_insertion_point(field_set_allocated:flyteidl.admin.ProjectListRequest.org) +} + // ------------------------------------------------------------------- // ProjectRegisterRequest diff --git a/flyteidl/gen/pb-cpp/flyteidl/service/admin.pb.cc b/flyteidl/gen/pb-cpp/flyteidl/service/admin.pb.cc index 54b3861c05..2824f12e1c 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/service/admin.pb.cc +++ b/flyteidl/gen/pb-cpp/flyteidl/service/admin.pb.cc @@ -52,376 +52,392 @@ const char descriptor_table_protodef_flyteidl_2fservice_2fadmin_2eproto[] = "admin/task_execution.proto\032\034flyteidl/adm" "in/version.proto\032\033flyteidl/admin/common." "proto\032\'flyteidl/admin/description_entity" - ".proto2\265q\n\014AdminService\022m\n\nCreateTask\022!." - "flyteidl.admin.TaskCreateRequest\032\".flyte" - "idl.admin.TaskCreateResponse\"\030\202\323\344\223\002\022\"\r/a" - "pi/v1/tasks:\001*\022\330\001\n\007GetTask\022 .flyteidl.ad" - "min.ObjectGetRequest\032\024.flyteidl.admin.Ta" - "sk\"\224\001\202\323\344\223\002\215\001\022=/api/v1/tasks/{id.project}" - "/{id.domain}/{id.name}/{id.version}ZL\022J/" - "api/v1/tasks/org/{id.org}/{id.project}/{" - "id.domain}/{id.name}/{id.version}\022\305\001\n\013Li" - "stTaskIds\0220.flyteidl.admin.NamedEntityId" - "entifierListRequest\032).flyteidl.admin.Nam" - "edEntityIdentifierList\"Y\202\323\344\223\002S\022#/api/v1/" - "task_ids/{project}/{domain}Z,\022*/api/v1/t" - "asks/org/{org}/{project}/{domain}\022\250\002\n\tLi" - "stTasks\022#.flyteidl.admin.ResourceListReq" - "uest\032\030.flyteidl.admin.TaskList\"\333\001\202\323\344\223\002\324\001" - "\0220/api/v1/tasks/{id.project}/{id.domain}" - "/{id.name}Z\?\022=/api/v1/tasks/org/{id.org}" - "/{id.project}/{id.domain}/{id.name}Z(\022&/" - "api/v1/tasks/{id.project}/{id.domain}Z5\022" - "3/api/v1/tasks/org/{id.org}/{id.project}" - "/{id.domain}\022}\n\016CreateWorkflow\022%.flyteid" - "l.admin.WorkflowCreateRequest\032&.flyteidl" - ".admin.WorkflowCreateResponse\"\034\202\323\344\223\002\026\"\021/" - "api/v1/workflows:\001*\022\350\001\n\013GetWorkflow\022 .fl" - "yteidl.admin.ObjectGetRequest\032\030.flyteidl" - ".admin.Workflow\"\234\001\202\323\344\223\002\225\001\022A/api/v1/workf" - "lows/{id.project}/{id.domain}/{id.name}/" - "{id.version}ZP\022N/api/v1/workflows/org/{i" - "d.org}/{id.project}/{id.domain}/{id.name" - "}/{id.version}\022\321\001\n\017ListWorkflowIds\0220.fly" - "teidl.admin.NamedEntityIdentifierListReq" - "uest\032).flyteidl.admin.NamedEntityIdentif" - "ierList\"a\202\323\344\223\002[\022\'/api/v1/workflow_ids/{p" - "roject}/{domain}Z0\022./api/v1/workflows/or" - "g/{org}/{project}/{domain}\022\300\002\n\rListWorkf" - "lows\022#.flyteidl.admin.ResourceListReques" - "t\032\034.flyteidl.admin.WorkflowList\"\353\001\202\323\344\223\002\344" - "\001\0224/api/v1/workflows/{id.project}/{id.do" - "main}/{id.name}ZC\022A/api/v1/workflows/org" - "/{id.org}/{id.project}/{id.domain}/{id.n" - "ame}Z,\022*/api/v1/workflows/{id.project}/{" - "id.domain}Z9\0227/api/v1/workflows/org/{id." - "org}/{id.project}/{id.domain}\022\206\001\n\020Create" - "LaunchPlan\022\'.flyteidl.admin.LaunchPlanCr" - "eateRequest\032(.flyteidl.admin.LaunchPlanC" - "reateResponse\"\037\202\323\344\223\002\031\"\024/api/v1/launch_pl" - "ans:\001*\022\362\001\n\rGetLaunchPlan\022 .flyteidl.admi" - "n.ObjectGetRequest\032\032.flyteidl.admin.Laun" - "chPlan\"\242\001\202\323\344\223\002\233\001\022D/api/v1/launch_plans/{" + ".proto2\227v\n\014AdminService\022\216\001\n\nCreateTask\022!" + ".flyteidl.admin.TaskCreateRequest\032\".flyt" + "eidl.admin.TaskCreateResponse\"9\202\323\344\223\0023\"\r/" + "api/v1/tasks:\001*Z\037\"\032/api/v1/tasks/org/{id" + ".org}:\001*\022\330\001\n\007GetTask\022 .flyteidl.admin.Ob" + "jectGetRequest\032\024.flyteidl.admin.Task\"\224\001\202" + "\323\344\223\002\215\001\022=/api/v1/tasks/{id.project}/{id.d" + "omain}/{id.name}/{id.version}ZL\022J/api/v1" + "/tasks/org/{id.org}/{id.project}/{id.dom" + "ain}/{id.name}/{id.version}\022\305\001\n\013ListTask" + "Ids\0220.flyteidl.admin.NamedEntityIdentifi" + "erListRequest\032).flyteidl.admin.NamedEnti" + "tyIdentifierList\"Y\202\323\344\223\002S\022#/api/v1/task_i" + "ds/{project}/{domain}Z,\022*/api/v1/tasks/o" + "rg/{org}/{project}/{domain}\022\250\002\n\tListTask" + "s\022#.flyteidl.admin.ResourceListRequest\032\030" + ".flyteidl.admin.TaskList\"\333\001\202\323\344\223\002\324\001\0220/api" + "/v1/tasks/{id.project}/{id.domain}/{id.n" + "ame}Z\?\022=/api/v1/tasks/org/{id.org}/{id.p" + "roject}/{id.domain}/{id.name}Z(\022&/api/v1" + "/tasks/{id.project}/{id.domain}Z5\0223/api/" + "v1/tasks/org/{id.org}/{id.project}/{id.d" + "omain}\022\242\001\n\016CreateWorkflow\022%.flyteidl.adm" + "in.WorkflowCreateRequest\032&.flyteidl.admi" + "n.WorkflowCreateResponse\"A\202\323\344\223\002;\"\021/api/v" + "1/workflows:\001*Z#\"\036/api/v1/workflows/org/" + "{id.org}:\001*\022\350\001\n\013GetWorkflow\022 .flyteidl.a" + "dmin.ObjectGetRequest\032\030.flyteidl.admin.W" + "orkflow\"\234\001\202\323\344\223\002\225\001\022A/api/v1/workflows/{id" + ".project}/{id.domain}/{id.name}/{id.vers" + "ion}ZP\022N/api/v1/workflows/org/{id.org}/{" "id.project}/{id.domain}/{id.name}/{id.ve" - "rsion}ZS\022Q/api/v1/launch_plans/org/{id.o" - "rg}/{id.project}/{id.domain}/{id.name}/{" - "id.version}\022\363\001\n\023GetActiveLaunchPlan\022\'.fl" - "yteidl.admin.ActiveLaunchPlanRequest\032\032.f" - "lyteidl.admin.LaunchPlan\"\226\001\202\323\344\223\002\217\001\022>/api" - "/v1/active_launch_plans/{id.project}/{id" - ".domain}/{id.name}ZM\022K/api/v1/active_lau" - "nch_plans/org/{id.org}/{id.project}/{id." - "domain}/{id.name}\022\234\001\n\025ListActiveLaunchPl" - "ans\022+.flyteidl.admin.ActiveLaunchPlanLis" - "tRequest\032\036.flyteidl.admin.LaunchPlanList" - "\"6\202\323\344\223\0020\022./api/v1/active_launch_plans/{p" - "roject}/{domain}\022\334\001\n\021ListLaunchPlanIds\0220" - ".flyteidl.admin.NamedEntityIdentifierLis" - "tRequest\032).flyteidl.admin.NamedEntityIde" - "ntifierList\"j\202\323\344\223\002d\022*/api/v1/launch_plan" - "_ids/{project}/{domain}Z6\0224/api/v1/launc" - "h_plan_ids/org/{org}/{project}/{domain}\022" - "\320\002\n\017ListLaunchPlans\022#.flyteidl.admin.Res" - "ourceListRequest\032\036.flyteidl.admin.Launch" - "PlanList\"\367\001\202\323\344\223\002\360\001\0227/api/v1/launch_plans" - "/{id.project}/{id.domain}/{id.name}ZF\022D/" - "api/v1/launch_plans/org/{id.org}/{id.pro" - "ject}/{id.domain}/{id.name}Z/\022-/api/v1/l" - "aunch_plans/{id.project}/{id.domain}Z<\022:" - "/api/v1/launch_plans/org/{id.org}/{id.pr" - "oject}/{id.domain}\022\215\002\n\020UpdateLaunchPlan\022" - "\'.flyteidl.admin.LaunchPlanUpdateRequest" - "\032(.flyteidl.admin.LaunchPlanUpdateRespon" - "se\"\245\001\202\323\344\223\002\236\001\032D/api/v1/launch_plans/{id.p" - "roject}/{id.domain}/{id.name}/{id.versio" - "n}:\001*ZS\032Q/api/v1/launch_plans/org/{id.or" - "g}/{id.project}/{id.domain}/{id.name}/{i" - "d.version}\022\201\001\n\017CreateExecution\022&.flyteid" - "l.admin.ExecutionCreateRequest\032\'.flyteid" - "l.admin.ExecutionCreateResponse\"\035\202\323\344\223\002\027\"" - "\022/api/v1/executions:\001*\022\216\001\n\021RelaunchExecu" - "tion\022(.flyteidl.admin.ExecutionRelaunchR" - "equest\032\'.flyteidl.admin.ExecutionCreateR" - "esponse\"&\202\323\344\223\002 \"\033/api/v1/executions/rela" - "unch:\001*\022\213\001\n\020RecoverExecution\022\'.flyteidl." - "admin.ExecutionRecoverRequest\032\'.flyteidl" - ".admin.ExecutionCreateResponse\"%\202\323\344\223\002\037\"\032" - "/api/v1/executions/recover:\001*\022\334\001\n\014GetExe" - "cution\022+.flyteidl.admin.WorkflowExecutio" - "nGetRequest\032\031.flyteidl.admin.Execution\"\203" - "\001\202\323\344\223\002}\0225/api/v1/executions/{id.project}" - "/{id.domain}/{id.name}ZD\022B/api/v1/execut" - "ions/org/{id.org}/{id.project}/{id.domai" - "n}/{id.name}\022\357\001\n\017UpdateExecution\022&.flyte" - "idl.admin.ExecutionUpdateRequest\032\'.flyte" - "idl.admin.ExecutionUpdateResponse\"\212\001\202\323\344\223" - "\002\203\001\0325/api/v1/executions/{id.project}/{id" - ".domain}/{id.name}:\001*ZG\032B/api/v1/executi" - "ons/org/{id.org}/{id.project}/{id.domain" - "}/{id.name}:\001*\022\206\002\n\020GetExecutionData\022/.fl" - "yteidl.admin.WorkflowExecutionGetDataReq" - "uest\0320.flyteidl.admin.WorkflowExecutionG" - "etDataResponse\"\216\001\202\323\344\223\002\207\001\022:/api/v1/data/e" - "xecutions/{id.project}/{id.domain}/{id.n" - "ame}ZI\022G/api/v1/data/executions/org/{id." - "org}/{id.project}/{id.domain}/{id.name}\022" - "\305\001\n\016ListExecutions\022#.flyteidl.admin.Reso" - "urceListRequest\032\035.flyteidl.admin.Executi" - "onList\"o\202\323\344\223\002i\022+/api/v1/executions/{id.p" - "roject}/{id.domain}Z:\0228/api/v1/execution" - "s/org/{id.org}/{id.project}/{id.domain}\022" - "\375\001\n\022TerminateExecution\022).flyteidl.admin." - "ExecutionTerminateRequest\032*.flyteidl.adm" - "in.ExecutionTerminateResponse\"\217\001\202\323\344\223\002\210\001*" - "5/api/v1/executions/{id.project}/{id.dom" - "ain}/{id.name}:\001*ZL*G/api/v1/data/execut" - "ions/org/{id.org}/{id.project}/{id.domai" - "n}/{id.name}:\001*\022\342\002\n\020GetNodeExecution\022\'.f" - "lyteidl.admin.NodeExecutionGetRequest\032\035." - "flyteidl.admin.NodeExecution\"\205\002\202\323\344\223\002\376\001\022n" - "/api/v1/node_executions/{id.execution_id" - ".project}/{id.execution_id.domain}/{id.e" - "xecution_id.name}/{id.node_id}Z\213\001\022\210\001/api" - "/v1/node_executions/org/{id.execution_id" - ".org}/{id.execution_id.project}/{id.exec" + "rsion}\022\321\001\n\017ListWorkflowIds\0220.flyteidl.ad" + "min.NamedEntityIdentifierListRequest\032).f" + "lyteidl.admin.NamedEntityIdentifierList\"" + "a\202\323\344\223\002[\022\'/api/v1/workflow_ids/{project}/" + "{domain}Z0\022./api/v1/workflows/org/{org}/" + "{project}/{domain}\022\300\002\n\rListWorkflows\022#.f" + "lyteidl.admin.ResourceListRequest\032\034.flyt" + "eidl.admin.WorkflowList\"\353\001\202\323\344\223\002\344\001\0224/api/" + "v1/workflows/{id.project}/{id.domain}/{i" + "d.name}ZC\022A/api/v1/workflows/org/{id.org" + "}/{id.project}/{id.domain}/{id.name}Z,\022*" + "/api/v1/workflows/{id.project}/{id.domai" + "n}Z9\0227/api/v1/workflows/org/{id.org}/{id" + ".project}/{id.domain}\022\256\001\n\020CreateLaunchPl" + "an\022\'.flyteidl.admin.LaunchPlanCreateRequ" + "est\032(.flyteidl.admin.LaunchPlanCreateRes" + "ponse\"G\202\323\344\223\002A\"\024/api/v1/launch_plans:\001*Z&" + "\"!/api/v1/launch_plans/org/{id.org}:\001*\022\362" + "\001\n\rGetLaunchPlan\022 .flyteidl.admin.Object" + "GetRequest\032\032.flyteidl.admin.LaunchPlan\"\242" + "\001\202\323\344\223\002\233\001\022D/api/v1/launch_plans/{id.proje" + "ct}/{id.domain}/{id.name}/{id.version}ZS" + "\022Q/api/v1/launch_plans/org/{id.org}/{id." + "project}/{id.domain}/{id.name}/{id.versi" + "on}\022\363\001\n\023GetActiveLaunchPlan\022\'.flyteidl.a" + "dmin.ActiveLaunchPlanRequest\032\032.flyteidl." + "admin.LaunchPlan\"\226\001\202\323\344\223\002\217\001\022>/api/v1/acti" + "ve_launch_plans/{id.project}/{id.domain}" + "/{id.name}ZM\022K/api/v1/active_launch_plan" + "s/org/{id.org}/{id.project}/{id.domain}/" + "{id.name}\022\330\001\n\025ListActiveLaunchPlans\022+.fl" + "yteidl.admin.ActiveLaunchPlanListRequest" + "\032\036.flyteidl.admin.LaunchPlanList\"r\202\323\344\223\002l" + "\022./api/v1/active_launch_plans/{project}/" + "{domain}Z:\0228/api/v1/active_launch_plans/" + "org/{org}/{project}/{domain}\022\334\001\n\021ListLau" + "nchPlanIds\0220.flyteidl.admin.NamedEntityI" + "dentifierListRequest\032).flyteidl.admin.Na" + "medEntityIdentifierList\"j\202\323\344\223\002d\022*/api/v1" + "/launch_plan_ids/{project}/{domain}Z6\0224/" + "api/v1/launch_plan_ids/org/{org}/{projec" + "t}/{domain}\022\320\002\n\017ListLaunchPlans\022#.flytei" + "dl.admin.ResourceListRequest\032\036.flyteidl." + "admin.LaunchPlanList\"\367\001\202\323\344\223\002\360\001\0227/api/v1/" + "launch_plans/{id.project}/{id.domain}/{i" + "d.name}ZF\022D/api/v1/launch_plans/org/{id." + "org}/{id.project}/{id.domain}/{id.name}Z" + "/\022-/api/v1/launch_plans/{id.project}/{id" + ".domain}Z<\022:/api/v1/launch_plans/org/{id" + ".org}/{id.project}/{id.domain}\022\215\002\n\020Updat" + "eLaunchPlan\022\'.flyteidl.admin.LaunchPlanU" + "pdateRequest\032(.flyteidl.admin.LaunchPlan" + "UpdateResponse\"\245\001\202\323\344\223\002\236\001\032D/api/v1/launch" + "_plans/{id.project}/{id.domain}/{id.name" + "}/{id.version}:\001*ZS\032Q/api/v1/launch_plan" + "s/org/{id.org}/{id.project}/{id.domain}/" + "{id.name}/{id.version}\022\244\001\n\017CreateExecuti" + "on\022&.flyteidl.admin.ExecutionCreateReque" + "st\032\'.flyteidl.admin.ExecutionCreateRespo" + "nse\"@\202\323\344\223\002:\"\022/api/v1/executions:\001*Z!\032\034/a" + "pi/v1/executions/org/{org}:\001*\022\275\001\n\021Relaun" + "chExecution\022(.flyteidl.admin.ExecutionRe" + "launchRequest\032\'.flyteidl.admin.Execution" + "CreateResponse\"U\202\323\344\223\002O\"\033/api/v1/executio" + "ns/relaunch:\001*Z-\"(/api/v1/executions/org" + "/{id.org}/relaunch:\001*\022\271\001\n\020RecoverExecuti" + "on\022\'.flyteidl.admin.ExecutionRecoverRequ" + "est\032\'.flyteidl.admin.ExecutionCreateResp" + "onse\"S\202\323\344\223\002M\"\032/api/v1/executions/recover" + ":\001*Z,\"\'/api/v1/executions/org/{id.org}/r" + "ecover:\001*\022\334\001\n\014GetExecution\022+.flyteidl.ad" + "min.WorkflowExecutionGetRequest\032\031.flytei" + "dl.admin.Execution\"\203\001\202\323\344\223\002}\0225/api/v1/exe" + "cutions/{id.project}/{id.domain}/{id.nam" + "e}ZD\022B/api/v1/executions/org/{id.org}/{i" + "d.project}/{id.domain}/{id.name}\022\357\001\n\017Upd" + "ateExecution\022&.flyteidl.admin.ExecutionU" + "pdateRequest\032\'.flyteidl.admin.ExecutionU" + "pdateResponse\"\212\001\202\323\344\223\002\203\001\0325/api/v1/executi" + "ons/{id.project}/{id.domain}/{id.name}:\001" + "*ZG\032B/api/v1/executions/org/{id.org}/{id" + ".project}/{id.domain}/{id.name}:\001*\022\206\002\n\020G" + "etExecutionData\022/.flyteidl.admin.Workflo" + "wExecutionGetDataRequest\0320.flyteidl.admi" + "n.WorkflowExecutionGetDataResponse\"\216\001\202\323\344" + "\223\002\207\001\022:/api/v1/data/executions/{id.projec" + "t}/{id.domain}/{id.name}ZI\022G/api/v1/data" + "/executions/org/{id.org}/{id.project}/{i" + "d.domain}/{id.name}\022\305\001\n\016ListExecutions\022#" + ".flyteidl.admin.ResourceListRequest\032\035.fl" + "yteidl.admin.ExecutionList\"o\202\323\344\223\002i\022+/api" + "/v1/executions/{id.project}/{id.domain}Z" + ":\0228/api/v1/executions/org/{id.org}/{id.p" + "roject}/{id.domain}\022\370\001\n\022TerminateExecuti" + "on\022).flyteidl.admin.ExecutionTerminateRe" + "quest\032*.flyteidl.admin.ExecutionTerminat" + "eResponse\"\212\001\202\323\344\223\002\203\001*5/api/v1/executions/" + "{id.project}/{id.domain}/{id.name}:\001*ZG*" + "B/api/v1/executions/org/{id.org}/{id.pro" + "ject}/{id.domain}/{id.name}:\001*\022\342\002\n\020GetNo" + "deExecution\022\'.flyteidl.admin.NodeExecuti" + "onGetRequest\032\035.flyteidl.admin.NodeExecut" + "ion\"\205\002\202\323\344\223\002\376\001\022n/api/v1/node_executions/{" + "id.execution_id.project}/{id.execution_i" + "d.domain}/{id.execution_id.name}/{id.nod" + "e_id}Z\213\001\022\210\001/api/v1/node_executions/org/{" + "id.execution_id.org}/{id.execution_id.pr" + "oject}/{id.execution_id.domain}/{id.exec" + "ution_id.name}/{id.node_id}\022\371\002\n\022ListNode" + "Executions\022(.flyteidl.admin.NodeExecutio" + "nListRequest\032!.flyteidl.admin.NodeExecut" + "ionList\"\225\002\202\323\344\223\002\216\002\022s/api/v1/node_executio" + "ns/{workflow_execution_id.project}/{work" + "flow_execution_id.domain}/{workflow_exec" + "ution_id.name}Z\226\001\022\223\001/api/v1/node_executi" + "ons/org/{workflow_execution_id.org}/{wor" + "kflow_execution_id.project}/{workflow_ex" + "ecution_id.domain}/{workflow_execution_i" + "d.name}\022\217\010\n\031ListNodeExecutionsForTask\022/." + "flyteidl.admin.NodeExecutionForTaskListR" + "equest\032!.flyteidl.admin.NodeExecutionLis" + "t\"\235\007\202\323\344\223\002\226\007\022\251\003/api/v1/children/task_exec" + "utions/{task_execution_id.node_execution" + "_id.execution_id.project}/{task_executio" + "n_id.node_execution_id.execution_id.doma" + "in}/{task_execution_id.node_execution_id" + ".execution_id.name}/{task_execution_id.n" + "ode_execution_id.node_id}/{task_executio" + "n_id.task_id.project}/{task_execution_id" + ".task_id.domain}/{task_execution_id.task" + "_id.name}/{task_execution_id.task_id.ver" + "sion}/{task_execution_id.retry_attempt}Z" + "\347\003\022\344\003/api/v1/children/task_executions/or" + "g/{task_execution_id.node_execution_id.e" + "xecution_id.org}/{task_execution_id.node" + "_execution_id.execution_id.project}/{tas" + "k_execution_id.node_execution_id.executi" + "on_id.domain}/{task_execution_id.node_ex" + "ecution_id.execution_id.name}/{task_exec" + "ution_id.node_execution_id.node_id}/{tas" + "k_execution_id.task_id.project}/{task_ex" + "ecution_id.task_id.domain}/{task_executi" + "on_id.task_id.name}/{task_execution_id.t" + "ask_id.version}/{task_execution_id.retry" + "_attempt}\022\203\003\n\024GetNodeExecutionData\022+.fly" + "teidl.admin.NodeExecutionGetDataRequest\032" + ",.flyteidl.admin.NodeExecutionGetDataRes" + "ponse\"\217\002\202\323\344\223\002\210\002\022s/api/v1/data/node_execu" + "tions/{id.execution_id.project}/{id.exec" "ution_id.domain}/{id.execution_id.name}/" - "{id.node_id}\022\371\002\n\022ListNodeExecutions\022(.fl" - "yteidl.admin.NodeExecutionListRequest\032!." - "flyteidl.admin.NodeExecutionList\"\225\002\202\323\344\223\002" - "\216\002\022s/api/v1/node_executions/{workflow_ex" - "ecution_id.project}/{workflow_execution_" - "id.domain}/{workflow_execution_id.name}Z" - "\226\001\022\223\001/api/v1/node_executions/org/{workfl" - "ow_execution_id.org}/{workflow_execution" - "_id.project}/{workflow_execution_id.doma" - "in}/{workflow_execution_id.name}\022\217\010\n\031Lis" - "tNodeExecutionsForTask\022/.flyteidl.admin." - "NodeExecutionForTaskListRequest\032!.flytei" - "dl.admin.NodeExecutionList\"\235\007\202\323\344\223\002\226\007\022\251\003/" - "api/v1/children/task_executions/{task_ex" - "ecution_id.node_execution_id.execution_i" - "d.project}/{task_execution_id.node_execu" - "tion_id.execution_id.domain}/{task_execu" - "tion_id.node_execution_id.execution_id.n" - "ame}/{task_execution_id.node_execution_i" - "d.node_id}/{task_execution_id.task_id.pr" - "oject}/{task_execution_id.task_id.domain" - "}/{task_execution_id.task_id.name}/{task" - "_execution_id.task_id.version}/{task_exe" - "cution_id.retry_attempt}Z\347\003\022\344\003/api/v1/ch" - "ildren/task_executions/org/{task_executi" - "on_id.node_execution_id.execution_id.org" - "}/{task_execution_id.node_execution_id.e" - "xecution_id.project}/{task_execution_id." - "node_execution_id.execution_id.domain}/{" - "task_execution_id.node_execution_id.exec" - "ution_id.name}/{task_execution_id.node_e" - "xecution_id.node_id}/{task_execution_id." - "task_id.project}/{task_execution_id.task" - "_id.domain}/{task_execution_id.task_id.n" - "ame}/{task_execution_id.task_id.version}" - "/{task_execution_id.retry_attempt}\022\203\003\n\024G" - "etNodeExecutionData\022+.flyteidl.admin.Nod" - "eExecutionGetDataRequest\032,.flyteidl.admi" - "n.NodeExecutionGetDataResponse\"\217\002\202\323\344\223\002\210\002" - "\022s/api/v1/data/node_executions/{id.execu" - "tion_id.project}/{id.execution_id.domain" - "}/{id.execution_id.name}/{id.node_id}Z\220\001" - "\022\215\001/api/v1/data/node_executions/org/{id." - "execution_id.org}/{id.execution_id.proje" - "ct}/{id.execution_id.domain}/{id.executi" - "on_id.name}/{id.node_id}\022\177\n\017RegisterProj" - "ect\022&.flyteidl.admin.ProjectRegisterRequ" - "est\032\'.flyteidl.admin.ProjectRegisterResp" - "onse\"\033\202\323\344\223\002\025\"\020/api/v1/projects:\001*\022\227\001\n\rUp" - "dateProject\022\027.flyteidl.admin.Project\032%.f" - "lyteidl.admin.ProjectUpdateResponse\"F\202\323\344" - "\223\002@\032\025/api/v1/projects/{id}:\001*Z$\032\037/api/v1" - "/projects/org/{org}/{id}:\001*\022f\n\014ListProje" - "cts\022\".flyteidl.admin.ProjectListRequest\032" - "\030.flyteidl.admin.Projects\"\030\202\323\344\223\002\022\022\020/api/" - "v1/projects\022\231\001\n\023CreateWorkflowEvent\022-.fl" - "yteidl.admin.WorkflowExecutionEventReque" - "st\032..flyteidl.admin.WorkflowExecutionEve" - "ntResponse\"#\202\323\344\223\002\035\"\030/api/v1/events/workf" - "lows:\001*\022\211\001\n\017CreateNodeEvent\022).flyteidl.a" - "dmin.NodeExecutionEventRequest\032*.flyteid" - "l.admin.NodeExecutionEventResponse\"\037\202\323\344\223" - "\002\031\"\024/api/v1/events/nodes:\001*\022\211\001\n\017CreateTa" - "skEvent\022).flyteidl.admin.TaskExecutionEv" - "entRequest\032*.flyteidl.admin.TaskExecutio" - "nEventResponse\"\037\202\323\344\223\002\031\"\024/api/v1/events/t" - "asks:\001*\022\313\005\n\020GetTaskExecution\022\'.flyteidl." - "admin.TaskExecutionGetRequest\032\035.flyteidl" - ".admin.TaskExecution\"\356\004\202\323\344\223\002\347\004\022\231\002/api/v1" - "/task_executions/{id.node_execution_id.e" - "xecution_id.project}/{id.node_execution_" - "id.execution_id.domain}/{id.node_executi" - "on_id.execution_id.name}/{id.node_execut" - "ion_id.node_id}/{id.task_id.project}/{id" - ".task_id.domain}/{id.task_id.name}/{id.t" - "ask_id.version}/{id.retry_attempt}Z\310\002\022\305\002" - "/api/v1/task_executions/org/{id.node_exe" - "cution_id.execution_id.org}/{id.node_exe" - "cution_id.execution_id.project}/{id.node" - "_execution_id.execution_id.domain}/{id.n" - "ode_execution_id.execution_id.name}/{id." - "node_execution_id.node_id}/{id.task_id.p" - "roject}/{id.task_id.domain}/{id.task_id." - "name}/{id.task_id.version}/{id.retry_att" - "empt}\022\361\003\n\022ListTaskExecutions\022(.flyteidl." - "admin.TaskExecutionListRequest\032!.flyteid" - "l.admin.TaskExecutionList\"\215\003\202\323\344\223\002\206\003\022\252\001/a" - "pi/v1/task_executions/{node_execution_id" - ".execution_id.project}/{node_execution_i" - "d.execution_id.domain}/{node_execution_i" - "d.execution_id.name}/{node_execution_id." - "node_id}Z\326\001\022\323\001/api/v1/task_executions/or" - "g/{node_execution_id.execution_id.org}/{" + "{id.node_id}Z\220\001\022\215\001/api/v1/data/node_exec" + "utions/org/{id.execution_id.org}/{id.exe" + "cution_id.project}/{id.execution_id.doma" + "in}/{id.execution_id.name}/{id.node_id}\022" + "\250\001\n\017RegisterProject\022&.flyteidl.admin.Pro" + "jectRegisterRequest\032\'.flyteidl.admin.Pro" + "jectRegisterResponse\"D\202\323\344\223\002>\"\020/api/v1/pr" + "ojects:\001*Z\'\"\"/api/v1/projects/org/{proje" + "ct.org}:\001*\022\227\001\n\rUpdateProject\022\027.flyteidl." + "admin.Project\032%.flyteidl.admin.ProjectUp" + "dateResponse\"F\202\323\344\223\002@\032\025/api/v1/projects/{" + "id}:\001*Z$\032\037/api/v1/projects/org/{org}/{id" + "}:\001*\022\204\001\n\014ListProjects\022\".flyteidl.admin.P" + "rojectListRequest\032\030.flyteidl.admin.Proje" + "cts\"6\202\323\344\223\0020\022\020/api/v1/projectsZ\034\022\032/api/v1" + "/projects/org/{org}\022\325\001\n\023CreateWorkflowEv" + "ent\022-.flyteidl.admin.WorkflowExecutionEv" + "entRequest\032..flyteidl.admin.WorkflowExec" + "utionEventResponse\"_\202\323\344\223\002Y\"\030/api/v1/even" + "ts/workflows:\001*Z:\"5/api/v1/events/org/{e" + "vent.execution_id.org}/workflows:\001*\022\304\001\n\017" + "CreateNodeEvent\022).flyteidl.admin.NodeExe" + "cutionEventRequest\032*.flyteidl.admin.Node" + "ExecutionEventResponse\"Z\202\323\344\223\002T\"\024/api/v1/" + "events/nodes:\001*Z9\"4/api/v1/events/org/{e" + "vent.id.execution_id.org}/nodes:\001*\022\332\001\n\017C" + "reateTaskEvent\022).flyteidl.admin.TaskExec" + "utionEventRequest\032*.flyteidl.admin.TaskE" + "xecutionEventResponse\"p\202\323\344\223\002j\"\024/api/v1/e" + "vents/tasks:\001*ZO\"J/api/v1/events/org/{ev" + "ent.parent_node_execution_id.execution_i" + "d.org}/tasks:\001*\022\313\005\n\020GetTaskExecution\022\'.f" + "lyteidl.admin.TaskExecutionGetRequest\032\035." + "flyteidl.admin.TaskExecution\"\356\004\202\323\344\223\002\347\004\022\231" + "\002/api/v1/task_executions/{id.node_execut" + "ion_id.execution_id.project}/{id.node_ex" + "ecution_id.execution_id.domain}/{id.node" + "_execution_id.execution_id.name}/{id.nod" + "e_execution_id.node_id}/{id.task_id.proj" + "ect}/{id.task_id.domain}/{id.task_id.nam" + "e}/{id.task_id.version}/{id.retry_attemp" + "t}Z\310\002\022\305\002/api/v1/task_executions/org/{id." + "node_execution_id.execution_id.org}/{id." "node_execution_id.execution_id.project}/" - "{node_execution_id.execution_id.domain}/" - "{node_execution_id.execution_id.name}/{n" - "ode_execution_id.node_id}\022\354\005\n\024GetTaskExe" - "cutionData\022+.flyteidl.admin.TaskExecutio" - "nGetDataRequest\032,.flyteidl.admin.TaskExe" - "cutionGetDataResponse\"\370\004\202\323\344\223\002\361\004\022\236\002/api/v" - "1/data/task_executions/{id.node_executio" - "n_id.execution_id.project}/{id.node_exec" - "ution_id.execution_id.domain}/{id.node_e" - "xecution_id.execution_id.name}/{id.node_" - "execution_id.node_id}/{id.task_id.projec" - "t}/{id.task_id.domain}/{id.task_id.name}" - "/{id.task_id.version}/{id.retry_attempt}" - "Z\315\002\022\312\002/api/v1/data/task_executions/org/{" - "id.node_execution_id.execution_id.org}/{" - "id.node_execution_id.execution_id.projec" - "t}/{id.node_execution_id.execution_id.do" - "main}/{id.node_execution_id.execution_id" - ".name}/{id.node_execution_id.node_id}/{i" - "d.task_id.project}/{id.task_id.domain}/{" - "id.task_id.name}/{id.task_id.version}/{i" - "d.retry_attempt}\022\313\002\n\035UpdateProjectDomain" - "Attributes\0224.flyteidl.admin.ProjectDomai" - "nAttributesUpdateRequest\0325.flyteidl.admi" - "n.ProjectDomainAttributesUpdateResponse\"" - "\274\001\202\323\344\223\002\265\001\032J/api/v1/project_domain_attrib" - "utes/{attributes.project}/{attributes.do" - "main}:\001*Zd\032_/api/v1/project_domain_attri" - "butes/org/{attributes.org}/{attributes.p" - "roject}/{attributes.domain}:\001*\022\203\002\n\032GetPr" - "ojectDomainAttributes\0221.flyteidl.admin.P" - "rojectDomainAttributesGetRequest\0322.flyte" - "idl.admin.ProjectDomainAttributesGetResp" - "onse\"~\202\323\344\223\002x\0224/api/v1/project_domain_att" - "ributes/{project}/{domain}Z@\022>/api/v1/pr" - "oject_domain_attributes/org/{org}/{proje" - "ct}/{domain}\022\223\002\n\035DeleteProjectDomainAttr" - "ibutes\0224.flyteidl.admin.ProjectDomainAtt" - "ributesDeleteRequest\0325.flyteidl.admin.Pr" - "ojectDomainAttributesDeleteResponse\"\204\001\202\323" - "\344\223\002~*4/api/v1/project_domain_attributes/" - "{project}/{domain}:\001*ZC*>/api/v1/project" - "_domain_attributes/org/{org}/{project}/{" - "domain}:\001*\022\212\002\n\027UpdateProjectAttributes\022." - ".flyteidl.admin.ProjectAttributesUpdateR" - "equest\032/.flyteidl.admin.ProjectAttribute" - "sUpdateResponse\"\215\001\202\323\344\223\002\206\001\032//api/v1/proje" - "ct_attributes/{attributes.project}:\001*ZP\032" - "K/api/v1/project_domain_attributes/org/{" - "attributes.org}/{attributes.project}:\001*\022" - "\330\001\n\024GetProjectAttributes\022+.flyteidl.admi" - "n.ProjectAttributesGetRequest\032,.flyteidl" - ".admin.ProjectAttributesGetResponse\"e\202\323\344" - "\223\002_\022$/api/v1/project_attributes/{project" - "}Z7\0225/api/v1/project_domain_attributes/o" - "rg/{org}/{project}\022\347\001\n\027DeleteProjectAttr" + "{id.node_execution_id.execution_id.domai" + "n}/{id.node_execution_id.execution_id.na" + "me}/{id.node_execution_id.node_id}/{id.t" + "ask_id.project}/{id.task_id.domain}/{id." + "task_id.name}/{id.task_id.version}/{id.r" + "etry_attempt}\022\361\003\n\022ListTaskExecutions\022(.f" + "lyteidl.admin.TaskExecutionListRequest\032!" + ".flyteidl.admin.TaskExecutionList\"\215\003\202\323\344\223" + "\002\206\003\022\252\001/api/v1/task_executions/{node_exec" + "ution_id.execution_id.project}/{node_exe" + "cution_id.execution_id.domain}/{node_exe" + "cution_id.execution_id.name}/{node_execu" + "tion_id.node_id}Z\326\001\022\323\001/api/v1/task_execu" + "tions/org/{node_execution_id.execution_i" + "d.org}/{node_execution_id.execution_id.p" + "roject}/{node_execution_id.execution_id." + "domain}/{node_execution_id.execution_id." + "name}/{node_execution_id.node_id}\022\354\005\n\024Ge" + "tTaskExecutionData\022+.flyteidl.admin.Task" + "ExecutionGetDataRequest\032,.flyteidl.admin" + ".TaskExecutionGetDataResponse\"\370\004\202\323\344\223\002\361\004\022" + "\236\002/api/v1/data/task_executions/{id.node_" + "execution_id.execution_id.project}/{id.n" + "ode_execution_id.execution_id.domain}/{i" + "d.node_execution_id.execution_id.name}/{" + "id.node_execution_id.node_id}/{id.task_i" + "d.project}/{id.task_id.domain}/{id.task_" + "id.name}/{id.task_id.version}/{id.retry_" + "attempt}Z\315\002\022\312\002/api/v1/data/task_executio" + "ns/org/{id.node_execution_id.execution_i" + "d.org}/{id.node_execution_id.execution_i" + "d.project}/{id.node_execution_id.executi" + "on_id.domain}/{id.node_execution_id.exec" + "ution_id.name}/{id.node_execution_id.nod" + "e_id}/{id.task_id.project}/{id.task_id.d" + "omain}/{id.task_id.name}/{id.task_id.ver" + "sion}/{id.retry_attempt}\022\313\002\n\035UpdateProje" + "ctDomainAttributes\0224.flyteidl.admin.Proj" + "ectDomainAttributesUpdateRequest\0325.flyte" + "idl.admin.ProjectDomainAttributesUpdateR" + "esponse\"\274\001\202\323\344\223\002\265\001\032J/api/v1/project_domai" + "n_attributes/{attributes.project}/{attri" + "butes.domain}:\001*Zd\032_/api/v1/project_doma" + "in_attributes/org/{attributes.org}/{attr" + "ibutes.project}/{attributes.domain}:\001*\022\203" + "\002\n\032GetProjectDomainAttributes\0221.flyteidl" + ".admin.ProjectDomainAttributesGetRequest" + "\0322.flyteidl.admin.ProjectDomainAttribute" + "sGetResponse\"~\202\323\344\223\002x\0224/api/v1/project_do" + "main_attributes/{project}/{domain}Z@\022>/a" + "pi/v1/project_domain_attributes/org/{org" + "}/{project}/{domain}\022\223\002\n\035DeleteProjectDo" + "mainAttributes\0224.flyteidl.admin.ProjectD" + "omainAttributesDeleteRequest\0325.flyteidl." + "admin.ProjectDomainAttributesDeleteRespo" + "nse\"\204\001\202\323\344\223\002~*4/api/v1/project_domain_att" + "ributes/{project}/{domain}:\001*ZC*>/api/v1" + "/project_domain_attributes/org/{org}/{pr" + "oject}/{domain}:\001*\022\212\002\n\027UpdateProjectAttr" "ibutes\022..flyteidl.admin.ProjectAttribute" - "sDeleteRequest\032/.flyteidl.admin.ProjectA" - "ttributesDeleteResponse\"k\202\323\344\223\002e*$/api/v1" - "/project_attributes/{project}:\001*Z:*5/api" - "/v1/project_domain_attributes/org/{org}/" - "{project}:\001*\022\334\002\n\030UpdateWorkflowAttribute" - "s\022/.flyteidl.admin.WorkflowAttributesUpd" - "ateRequest\0320.flyteidl.admin.WorkflowAttr" - "ibutesUpdateResponse\"\334\001\202\323\344\223\002\325\001\032Z/api/v1/" - "workflow_attributes/{attributes.project}" - "/{attributes.domain}/{attributes.workflo" - "w}:\001*Zt\032o/api/v1/workflow_attributes/org" - "/{attributes.org}/{attributes.project}/{" - "attributes.domain}/{attributes.workflow}" - ":\001*\022\200\002\n\025GetWorkflowAttributes\022,.flyteidl" - ".admin.WorkflowAttributesGetRequest\032-.fl" - "yteidl.admin.WorkflowAttributesGetRespon" - "se\"\211\001\202\323\344\223\002\202\001\0229/api/v1/workflow_attribute" - "s/{project}/{domain}/{workflow}ZE\022C/api/" - "v1/workflow_attributes/org/{org}/{projec" - "t}/{domain}/{workflow}\022\217\002\n\030DeleteWorkflo" - "wAttributes\022/.flyteidl.admin.WorkflowAtt" - "ributesDeleteRequest\0320.flyteidl.admin.Wo" - "rkflowAttributesDeleteResponse\"\217\001\202\323\344\223\002\210\001" - "*9/api/v1/workflow_attributes/{project}/" - "{domain}/{workflow}:\001*ZH*C/api/v1/workfl" - "ow_attributes/org/{org}/{project}/{domai" - "n}/{workflow}:\001*\022\240\001\n\027ListMatchableAttrib" - "utes\022..flyteidl.admin.ListMatchableAttri" - "butesRequest\032/.flyteidl.admin.ListMatcha" - "bleAttributesResponse\"$\202\323\344\223\002\036\022\034/api/v1/m" - "atchable_attributes\022\350\001\n\021ListNamedEntitie" - "s\022&.flyteidl.admin.NamedEntityListReques" - "t\032\037.flyteidl.admin.NamedEntityList\"\211\001\202\323\344" - "\223\002\202\001\0229/api/v1/named_entities/{resource_t" - "ype}/{project}/{domain}ZE\022C/api/v1/named" - "_entities/{resource_type}/org/{org}/{pro" - "ject}/{domain}\022\203\002\n\016GetNamedEntity\022%.flyt" - "eidl.admin.NamedEntityGetRequest\032\033.flyte" - "idl.admin.NamedEntity\"\254\001\202\323\344\223\002\245\001\022I/api/v1" - "/named_entities/{resource_type}/{id.proj" - "ect}/{id.domain}/{id.name}ZX\022V/api/v1/na" - "med_entities/{resource_type}/org/{id.org" - "}/{id.project}/{id.domain}/{id.name}\022\235\002\n" - "\021UpdateNamedEntity\022(.flyteidl.admin.Name" - "dEntityUpdateRequest\032).flyteidl.admin.Na" - "medEntityUpdateResponse\"\262\001\202\323\344\223\002\253\001\032I/api/" - "v1/named_entities/{resource_type}/{id.pr" - "oject}/{id.domain}/{id.name}:\001*Z[\032V/api/" - "v1/named_entities/{resource_type}/org/{i" - "d.org}/{id.project}/{id.domain}/{id.name" - "}:\001*\022l\n\nGetVersion\022!.flyteidl.admin.GetV" - "ersionRequest\032\".flyteidl.admin.GetVersio" - "nResponse\"\027\202\323\344\223\002\021\022\017/api/v1/version\022\266\002\n\024G" - "etDescriptionEntity\022 .flyteidl.admin.Obj" - "ectGetRequest\032!.flyteidl.admin.Descripti" - "onEntity\"\330\001\202\323\344\223\002\321\001\022_/api/v1/description_" - "entities/{id.resource_type}/{id.project}" - "/{id.domain}/{id.name}/{id.version}Zn\022l/" - "api/v1/description_entities/org/{id.org}" - "/{id.resource_type}/{id.project}/{id.dom" - "ain}/{id.name}/{id.version}\022\310\003\n\027ListDesc" - "riptionEntities\022,.flyteidl.admin.Descrip" - "tionEntityListRequest\032%.flyteidl.admin.D" - "escriptionEntityList\"\327\002\202\323\344\223\002\320\002\022O/api/v1/" - "description_entities/{resource_type}/{id" - ".project}/{id.domain}/{id.name}Z^\022\\/api/" - "v1/description_entities/{resource_type}/" - "org/{id.org}/{id.project}/{id.domain}/{i" - "d.name}ZG\022E/api/v1/description_entities/" - "{resource_type}/{id.project}/{id.domain}" - "ZT\022R/api/v1/description_entities/{resour" - "ce_type}/org/{id.org}/{id.project}/{id.d" - "omain}\022\225\002\n\023GetExecutionMetrics\0222.flyteid" - "l.admin.WorkflowExecutionGetMetricsReque" - "st\0323.flyteidl.admin.WorkflowExecutionGet" - "MetricsResponse\"\224\001\202\323\344\223\002\215\001\022=/api/v1/metri" - "cs/executions/{id.project}/{id.domain}/{" - "id.name}ZL\022J/api/v1/metrics/executions/o" + "sUpdateRequest\032/.flyteidl.admin.ProjectA" + "ttributesUpdateResponse\"\215\001\202\323\344\223\002\206\001\032//api/" + "v1/project_attributes/{attributes.projec" + "t}:\001*ZP\032K/api/v1/project_domain_attribut" + "es/org/{attributes.org}/{attributes.proj" + "ect}:\001*\022\330\001\n\024GetProjectAttributes\022+.flyte" + "idl.admin.ProjectAttributesGetRequest\032,." + "flyteidl.admin.ProjectAttributesGetRespo" + "nse\"e\202\323\344\223\002_\022$/api/v1/project_attributes/" + "{project}Z7\0225/api/v1/project_domain_attr" + "ibutes/org/{org}/{project}\022\347\001\n\027DeletePro" + "jectAttributes\022..flyteidl.admin.ProjectA" + "ttributesDeleteRequest\032/.flyteidl.admin." + "ProjectAttributesDeleteResponse\"k\202\323\344\223\002e*" + "$/api/v1/project_attributes/{project}:\001*" + "Z:*5/api/v1/project_domain_attributes/or" + "g/{org}/{project}:\001*\022\334\002\n\030UpdateWorkflowA" + "ttributes\022/.flyteidl.admin.WorkflowAttri" + "butesUpdateRequest\0320.flyteidl.admin.Work" + "flowAttributesUpdateResponse\"\334\001\202\323\344\223\002\325\001\032Z" + "/api/v1/workflow_attributes/{attributes." + "project}/{attributes.domain}/{attributes" + ".workflow}:\001*Zt\032o/api/v1/workflow_attrib" + "utes/org/{attributes.org}/{attributes.pr" + "oject}/{attributes.domain}/{attributes.w" + "orkflow}:\001*\022\200\002\n\025GetWorkflowAttributes\022,." + "flyteidl.admin.WorkflowAttributesGetRequ" + "est\032-.flyteidl.admin.WorkflowAttributesG" + "etResponse\"\211\001\202\323\344\223\002\202\001\0229/api/v1/workflow_a" + "ttributes/{project}/{domain}/{workflow}Z" + "E\022C/api/v1/workflow_attributes/org/{org}" + "/{project}/{domain}/{workflow}\022\217\002\n\030Delet" + "eWorkflowAttributes\022/.flyteidl.admin.Wor" + "kflowAttributesDeleteRequest\0320.flyteidl." + "admin.WorkflowAttributesDeleteResponse\"\217" + "\001\202\323\344\223\002\210\001*9/api/v1/workflow_attributes/{p" + "roject}/{domain}/{workflow}:\001*ZH*C/api/v" + "1/workflow_attributes/org/{org}/{project" + "}/{domain}/{workflow}:\001*\022\312\001\n\027ListMatchab" + "leAttributes\022..flyteidl.admin.ListMatcha" + "bleAttributesRequest\032/.flyteidl.admin.Li" + "stMatchableAttributesResponse\"N\202\323\344\223\002H\022\034/" + "api/v1/matchable_attributesZ(\022&/api/v1/m" + "atchable_attributes/org/{org}\022\350\001\n\021ListNa" + "medEntities\022&.flyteidl.admin.NamedEntity" + "ListRequest\032\037.flyteidl.admin.NamedEntity" + "List\"\211\001\202\323\344\223\002\202\001\0229/api/v1/named_entities/{" + "resource_type}/{project}/{domain}ZE\022C/ap" + "i/v1/named_entities/{resource_type}/org/" + "{org}/{project}/{domain}\022\203\002\n\016GetNamedEnt" + "ity\022%.flyteidl.admin.NamedEntityGetReque" + "st\032\033.flyteidl.admin.NamedEntity\"\254\001\202\323\344\223\002\245" + "\001\022I/api/v1/named_entities/{resource_type" + "}/{id.project}/{id.domain}/{id.name}ZX\022V" + "/api/v1/named_entities/{resource_type}/o" "rg/{id.org}/{id.project}/{id.domain}/{id" - ".name}B\?Z=github.com/flyteorg/flyte/flyt" - "eidl/gen/pb-go/flyteidl/serviceb\006proto3" + ".name}\022\235\002\n\021UpdateNamedEntity\022(.flyteidl." + "admin.NamedEntityUpdateRequest\032).flyteid" + "l.admin.NamedEntityUpdateResponse\"\262\001\202\323\344\223" + "\002\253\001\032I/api/v1/named_entities/{resource_ty" + "pe}/{id.project}/{id.domain}/{id.name}:\001" + "*Z[\032V/api/v1/named_entities/{resource_ty" + "pe}/org/{id.org}/{id.project}/{id.domain" + "}/{id.name}:\001*\022l\n\nGetVersion\022!.flyteidl." + "admin.GetVersionRequest\032\".flyteidl.admin" + ".GetVersionResponse\"\027\202\323\344\223\002\021\022\017/api/v1/ver" + "sion\022\266\002\n\024GetDescriptionEntity\022 .flyteidl" + ".admin.ObjectGetRequest\032!.flyteidl.admin" + ".DescriptionEntity\"\330\001\202\323\344\223\002\321\001\022_/api/v1/de" + "scription_entities/{id.resource_type}/{i" + "d.project}/{id.domain}/{id.name}/{id.ver" + "sion}Zn\022l/api/v1/description_entities/or" + "g/{id.org}/{id.resource_type}/{id.projec" + "t}/{id.domain}/{id.name}/{id.version}\022\310\003" + "\n\027ListDescriptionEntities\022,.flyteidl.adm" + "in.DescriptionEntityListRequest\032%.flytei" + "dl.admin.DescriptionEntityList\"\327\002\202\323\344\223\002\320\002" + "\022O/api/v1/description_entities/{resource" + "_type}/{id.project}/{id.domain}/{id.name" + "}Z^\022\\/api/v1/description_entities/{resou" + "rce_type}/org/{id.org}/{id.project}/{id." + "domain}/{id.name}ZG\022E/api/v1/description" + "_entities/{resource_type}/{id.project}/{" + "id.domain}ZT\022R/api/v1/description_entiti" + "es/{resource_type}/org/{id.org}/{id.proj" + "ect}/{id.domain}\022\225\002\n\023GetExecutionMetrics" + "\0222.flyteidl.admin.WorkflowExecutionGetMe" + "tricsRequest\0323.flyteidl.admin.WorkflowEx" + "ecutionGetMetricsResponse\"\224\001\202\323\344\223\002\215\001\022=/ap" + "i/v1/metrics/executions/{id.project}/{id" + ".domain}/{id.name}ZL\022J/api/v1/metrics/ex" + "ecutions/org/{id.org}/{id.project}/{id.d" + "omain}/{id.name}B\?Z=github.com/flyteorg/" + "flyte/flyteidl/gen/pb-go/flyteidl/servic" + "eb\006proto3" ; ::google::protobuf::internal::DescriptorTable descriptor_table_flyteidl_2fservice_2fadmin_2eproto = { false, InitDefaults_flyteidl_2fservice_2fadmin_2eproto, descriptor_table_protodef_flyteidl_2fservice_2fadmin_2eproto, - "flyteidl/service/admin.proto", &assign_descriptors_table_flyteidl_2fservice_2fadmin_2eproto, 15199, + "flyteidl/service/admin.proto", &assign_descriptors_table_flyteidl_2fservice_2fadmin_2eproto, 15809, }; void AddDescriptors_flyteidl_2fservice_2fadmin_2eproto() { diff --git a/flyteidl/gen/pb-cpp/flyteidl/service/signal.pb.cc b/flyteidl/gen/pb-cpp/flyteidl/service/signal.pb.cc index a1f4aa5982..5a6d8e19a8 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/service/signal.pb.cc +++ b/flyteidl/gen/pb-cpp/flyteidl/service/signal.pb.cc @@ -39,24 +39,29 @@ ::google::protobuf::internal::AssignDescriptorsTable assign_descriptors_table_fl const char descriptor_table_protodef_flyteidl_2fservice_2fsignal_2eproto[] = "\n\035flyteidl/service/signal.proto\022\020flyteid" "l.service\032\034google/api/annotations.proto\032" - "\033flyteidl/admin/signal.proto2\232\003\n\rSignalS" + "\033flyteidl/admin/signal.proto2\336\004\n\rSignalS" "ervice\022W\n\021GetOrCreateSignal\022(.flyteidl.a" "dmin.SignalGetOrCreateRequest\032\026.flyteidl" - ".admin.Signal\"\000\022\301\001\n\013ListSignals\022!.flytei" + ".admin.Signal\"\000\022\324\002\n\013ListSignals\022!.flytei" "dl.admin.SignalListRequest\032\032.flyteidl.ad" - "min.SignalList\"s\202\323\344\223\002m\022k/api/v1/signals/" - "{workflow_execution_id.project}/{workflo" - "w_execution_id.domain}/{workflow_executi" - "on_id.name}\022l\n\tSetSignal\022 .flyteidl.admi" - "n.SignalSetRequest\032!.flyteidl.admin.Sign" - "alSetResponse\"\032\202\323\344\223\002\024\"\017/api/v1/signals:\001" - "*B\?Z=github.com/flyteorg/flyte/flyteidl/" - "gen/pb-go/flyteidl/serviceb\006proto3" + "min.SignalList\"\205\002\202\323\344\223\002\376\001\022k/api/v1/signal" + "s/{workflow_execution_id.project}/{workf" + "low_execution_id.domain}/{workflow_execu" + "tion_id.name}Z\216\001\022\213\001/api/v1/signals/org/{" + "workflow_execution_id.org}/{workflow_exe" + "cution_id.project}/{workflow_execution_i" + "d.domain}/{workflow_execution_id.name}\022\234" + "\001\n\tSetSignal\022 .flyteidl.admin.SignalSetR" + "equest\032!.flyteidl.admin.SignalSetRespons" + "e\"J\202\323\344\223\002D\"\017/api/v1/signals:\001*Z.\")/api/v1" + "/signals/org/{id.execution_id.org}:\001*B\?Z" + "=github.com/flyteorg/flyte/flyteidl/gen/" + "pb-go/flyteidl/serviceb\006proto3" ; ::google::protobuf::internal::DescriptorTable descriptor_table_flyteidl_2fservice_2fsignal_2eproto = { false, InitDefaults_flyteidl_2fservice_2fsignal_2eproto, descriptor_table_protodef_flyteidl_2fservice_2fsignal_2eproto, - "flyteidl/service/signal.proto", &assign_descriptors_table_flyteidl_2fservice_2fsignal_2eproto, 594, + "flyteidl/service/signal.proto", &assign_descriptors_table_flyteidl_2fservice_2fsignal_2eproto, 790, }; void AddDescriptors_flyteidl_2fservice_2fsignal_2eproto() { diff --git a/flyteidl/gen/pb-go/flyteidl/admin/matchable_resource.pb.go b/flyteidl/gen/pb-go/flyteidl/admin/matchable_resource.pb.go index 93810d4040..1ab204ede3 100644 --- a/flyteidl/gen/pb-go/flyteidl/admin/matchable_resource.pb.go +++ b/flyteidl/gen/pb-go/flyteidl/admin/matchable_resource.pb.go @@ -812,10 +812,12 @@ func (m *MatchableAttributesConfiguration) GetOrg() string { // See :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for more details type ListMatchableAttributesRequest struct { // +required - ResourceType MatchableResource `protobuf:"varint,1,opt,name=resource_type,json=resourceType,proto3,enum=flyteidl.admin.MatchableResource" json:"resource_type,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + ResourceType MatchableResource `protobuf:"varint,1,opt,name=resource_type,json=resourceType,proto3,enum=flyteidl.admin.MatchableResource" json:"resource_type,omitempty"` + // Optional, org filter applied to list project requests. + Org string `protobuf:"bytes,2,opt,name=org,proto3" json:"org,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *ListMatchableAttributesRequest) Reset() { *m = ListMatchableAttributesRequest{} } @@ -850,6 +852,13 @@ func (m *ListMatchableAttributesRequest) GetResourceType() MatchableResource { return MatchableResource_TASK_RESOURCE } +func (m *ListMatchableAttributesRequest) GetOrg() string { + if m != nil { + return m.Org + } + return "" +} + // Response for a request for all matching resource attributes for a resource type. // See :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for more details type ListMatchableAttributesResponse struct { @@ -914,90 +923,90 @@ func init() { } var fileDescriptor_1d15bcabb02640f4 = []byte{ - // 1350 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x56, 0x5b, 0x53, 0xdb, 0x46, - 0x14, 0xb6, 0xb9, 0x18, 0x73, 0xdc, 0x80, 0xd8, 0x04, 0x30, 0xd0, 0x24, 0x54, 0xbd, 0x84, 0xb6, - 0x13, 0xbb, 0x43, 0xfb, 0x90, 0x5e, 0x32, 0x53, 0xe3, 0x88, 0xe0, 0x89, 0xc1, 0xb0, 0xb6, 0x73, - 0xe9, 0x8b, 0x66, 0x2d, 0xaf, 0x65, 0x15, 0x49, 0x2b, 0x56, 0x2b, 0xc0, 0xd3, 0x3f, 0xd1, 0x87, - 0xf6, 0xa7, 0xf4, 0xff, 0xf4, 0xad, 0x0f, 0xed, 0x8f, 0xe8, 0x68, 0x75, 0xb1, 0x2d, 0xec, 0x4c, - 0xde, 0x76, 0xcf, 0x7e, 0xe7, 0xb2, 0x67, 0xcf, 0xf9, 0xce, 0xc2, 0x93, 0x81, 0x3d, 0x12, 0xd4, - 0xea, 0xdb, 0x55, 0xd2, 0x77, 0x2c, 0xb7, 0xea, 0x10, 0x61, 0x0c, 0x49, 0xcf, 0xa6, 0x3a, 0xa7, - 0x3e, 0x0b, 0xb8, 0x41, 0x2b, 0x1e, 0x67, 0x82, 0xa1, 0xb5, 0x04, 0x58, 0x91, 0xc0, 0xdd, 0xbd, - 0x8c, 0xa2, 0xc1, 0x1c, 0x87, 0xb9, 0x11, 0x78, 0x37, 0x6b, 0xd5, 0xb0, 0x03, 0x5f, 0x50, 0xae, - 0x13, 0xdf, 0xb7, 0x4c, 0xd7, 0xa1, 0xae, 0x88, 0x81, 0x0f, 0x53, 0xa0, 0xc1, 0x38, 0xad, 0xd2, - 0x5b, 0x6a, 0x04, 0xc2, 0x4a, 0xed, 0x7c, 0x3c, 0x7d, 0xec, 0x53, 0x23, 0xe0, 0x96, 0x18, 0xc5, - 0xa7, 0x8f, 0x4c, 0xc6, 0x4c, 0x9b, 0x56, 0xe5, 0xae, 0x17, 0x0c, 0xaa, 0x37, 0x9c, 0x78, 0x1e, - 0xe5, 0x7e, 0x74, 0xae, 0xfe, 0x99, 0x07, 0xa5, 0x43, 0xfc, 0x4b, 0x1c, 0xdf, 0xa4, 0xed, 0x51, - 0x03, 0x29, 0xb0, 0x68, 0x78, 0x41, 0x39, 0xbf, 0x9f, 0x3f, 0x58, 0xc5, 0xe1, 0x32, 0x94, 0x98, - 0x5e, 0x50, 0x5e, 0x88, 0x24, 0xa6, 0x17, 0xa0, 0x2d, 0x28, 0x38, 0xd4, 0x61, 0x7c, 0x54, 0x5e, - 0x94, 0xc2, 0x78, 0x87, 0xca, 0xb0, 0xe2, 0x0b, 0xc6, 0x89, 0x49, 0xcb, 0x4b, 0xf2, 0x20, 0xd9, - 0xa2, 0xaf, 0x61, 0x83, 0x7a, 0x43, 0xea, 0x50, 0x4e, 0x6c, 0x3d, 0xc1, 0x2c, 0x4b, 0x8c, 0x92, - 0x1e, 0xb4, 0x23, 0xb9, 0xfa, 0x7b, 0x1e, 0xb6, 0x26, 0xe3, 0xaa, 0x09, 0xc1, 0xad, 0x5e, 0x20, - 0xa8, 0x8f, 0x7e, 0x82, 0x62, 0x9f, 0x0e, 0x48, 0x60, 0x0b, 0x5f, 0x86, 0x58, 0x3a, 0xdc, 0xaf, - 0x4c, 0x27, 0xbe, 0x92, 0xbd, 0x11, 0x4e, 0x35, 0xd0, 0x33, 0x28, 0xd8, 0x96, 0x63, 0x09, 0x5f, - 0x5e, 0xe6, 0x43, 0x74, 0x63, 0xbc, 0xfa, 0x57, 0x1e, 0x76, 0xea, 0xd1, 0x23, 0xcd, 0x88, 0xea, - 0x1d, 0x00, 0x49, 0x77, 0xe5, 0xfc, 0xfe, 0xe2, 0x41, 0xe9, 0xf0, 0xfb, 0xac, 0xed, 0xb9, 0xea, - 0x95, 0xf1, 0x52, 0x73, 0x05, 0x1f, 0xe1, 0x09, 0x63, 0xbb, 0xcf, 0x61, 0x3d, 0x73, 0x1c, 0xbe, - 0xc7, 0x25, 0x1d, 0x25, 0x2f, 0x74, 0x49, 0x47, 0xe8, 0x01, 0x2c, 0x5f, 0x13, 0x3b, 0xa0, 0xf1, - 0x1b, 0x45, 0x9b, 0x1f, 0x16, 0x9e, 0xe5, 0xd5, 0x0a, 0x94, 0xb5, 0xa4, 0x66, 0x2e, 0x02, 0x1a, - 0x4c, 0x46, 0x8d, 0x60, 0x49, 0x10, 0x33, 0x8a, 0x77, 0x15, 0xcb, 0xb5, 0xfa, 0x14, 0x36, 0x53, - 0x7c, 0x1c, 0x70, 0x93, 0xf4, 0xa8, 0x3d, 0x76, 0x91, 0x9f, 0x70, 0xa1, 0xfe, 0x97, 0x87, 0xb5, - 0x73, 0x3b, 0x30, 0x2d, 0xb7, 0x75, 0x4d, 0x39, 0xb7, 0xfa, 0x14, 0xed, 0xc1, 0xaa, 0x20, 0xfe, - 0xa5, 0x2e, 0x46, 0x5e, 0x02, 0x2e, 0x86, 0x82, 0xce, 0xc8, 0x93, 0x87, 0x9e, 0x84, 0xeb, 0x56, - 0xbf, 0xbc, 0x20, 0xfd, 0x16, 0x23, 0x41, 0xa3, 0x8f, 0x6c, 0xd8, 0x76, 0x2c, 0xdf, 0xb7, 0x5c, - 0x53, 0x8f, 0x41, 0x3d, 0x3a, 0x24, 0xd7, 0x16, 0xe3, 0xb2, 0x9a, 0xd6, 0x0e, 0xbf, 0xcb, 0xa6, - 0x74, 0xda, 0x75, 0xe5, 0x34, 0xd2, 0x8e, 0xa4, 0x47, 0xb1, 0x2e, 0xde, 0x74, 0x66, 0x89, 0xd5, - 0x43, 0xd8, 0x9c, 0x89, 0x47, 0x45, 0x58, 0x3a, 0xae, 0x35, 0x9a, 0x4a, 0x0e, 0xad, 0x43, 0xa9, - 0xdb, 0xd6, 0xf4, 0x17, 0xda, 0x71, 0xad, 0xdb, 0xec, 0x28, 0x79, 0xb5, 0x05, 0xeb, 0xd3, 0x2e, - 0xc3, 0x82, 0x5c, 0x65, 0xc9, 0x26, 0x7e, 0xf9, 0x47, 0xef, 0x0f, 0x13, 0x8f, 0x15, 0xd4, 0x7f, - 0x17, 0x61, 0xfb, 0x0d, 0xe3, 0x97, 0x03, 0x9b, 0xdd, 0x8c, 0xf3, 0xce, 0xdc, 0x81, 0x65, 0xa2, - 0x27, 0xb0, 0xee, 0x90, 0x5b, 0xdd, 0x23, 0x9c, 0xd8, 0x36, 0xb5, 0x2d, 0xdf, 0x91, 0xe9, 0x5c, - 0xc6, 0x6b, 0x0e, 0xb9, 0x3d, 0x1f, 0x4b, 0x51, 0x03, 0x94, 0xa4, 0xf1, 0x75, 0x83, 0xb9, 0x82, - 0xde, 0x8a, 0xb8, 0xbe, 0x27, 0x22, 0x09, 0xf9, 0xa1, 0xd2, 0x8e, 0x61, 0xf5, 0x08, 0x85, 0xd7, - 0xfd, 0x69, 0x01, 0x7a, 0x0b, 0x5b, 0x9c, 0xdc, 0xe8, 0x2c, 0x10, 0x5e, 0x20, 0xf4, 0x3e, 0x11, - 0x24, 0xb4, 0x38, 0xb0, 0x4c, 0xd9, 0xe8, 0xa5, 0xc3, 0x4f, 0xb3, 0x57, 0xc3, 0xe4, 0xa6, 0x25, - 0xc1, 0x2f, 0x88, 0x20, 0x51, 0xe0, 0xf8, 0x3e, 0xbf, 0x2b, 0x44, 0x15, 0x28, 0xd8, 0x61, 0x21, - 0xf9, 0xf2, 0x2d, 0x4b, 0x87, 0x5b, 0x59, 0x4b, 0xb2, 0xcc, 0x7c, 0x1c, 0xa3, 0xd0, 0x73, 0x28, - 0x11, 0xd7, 0x65, 0x82, 0x84, 0x19, 0xf1, 0x25, 0x55, 0x94, 0x0e, 0xf7, 0xb2, 0x4a, 0xb5, 0x31, - 0x04, 0x4f, 0xe2, 0xd1, 0xcf, 0x70, 0xcf, 0x72, 0x05, 0xe5, 0x3c, 0xf0, 0x84, 0xd5, 0xb3, 0x69, - 0xb9, 0x20, 0x0d, 0xec, 0x56, 0x22, 0x4a, 0xac, 0x24, 0x94, 0x58, 0x39, 0x62, 0xcc, 0x7e, 0x1d, - 0xd6, 0x32, 0x9e, 0x56, 0x08, 0xd3, 0x1f, 0xbe, 0xd3, 0x0d, 0xb7, 0x04, 0xd5, 0x0d, 0x62, 0x0c, - 0x69, 0x79, 0x65, 0x3f, 0x7f, 0x50, 0xc4, 0x6b, 0xa9, 0xb8, 0x1e, 0x4a, 0xd1, 0x01, 0x2c, 0x51, - 0xf7, 0xda, 0x2f, 0x17, 0xa5, 0x87, 0x07, 0xd9, 0x10, 0x35, 0xf7, 0xda, 0xc7, 0x12, 0xa1, 0xfe, - 0x51, 0x00, 0x74, 0x1a, 0xce, 0x0f, 0xcb, 0x35, 0x27, 0xfa, 0xb0, 0x07, 0x65, 0xd9, 0x31, 0xc9, - 0x40, 0xd1, 0xa7, 0xb8, 0x24, 0x34, 0xfa, 0xc5, 0xfb, 0x78, 0x6a, 0x6c, 0xe9, 0x24, 0x87, 0xb7, - 0xc4, 0x6c, 0xde, 0xbc, 0x84, 0xbd, 0x64, 0xc6, 0xcc, 0x72, 0x13, 0x95, 0xcb, 0x97, 0x1f, 0x4c, - 0x59, 0x27, 0x39, 0xbc, 0x63, 0xcc, 0xa5, 0xc3, 0x21, 0xec, 0xa6, 0x83, 0x4a, 0xbf, 0x0a, 0x59, - 0x67, 0xd2, 0x57, 0x54, 0x49, 0x07, 0x77, 0xf2, 0x34, 0x87, 0xa6, 0x4e, 0x72, 0xb8, 0x4c, 0xe7, - 0x51, 0x98, 0x0e, 0xdb, 0x63, 0x4f, 0xc9, 0x05, 0x65, 0x05, 0xc5, 0x65, 0xf6, 0xf9, 0x5c, 0x37, - 0x93, 0xec, 0x76, 0x92, 0xc3, 0x9b, 0x74, 0x26, 0xed, 0xb5, 0x00, 0x5d, 0x05, 0xc4, 0x0e, 0x5b, - 0x8b, 0x0d, 0x74, 0x9f, 0xf2, 0x6b, 0xcb, 0xa0, 0x71, 0x35, 0x3e, 0xce, 0x74, 0xd7, 0x45, 0x04, - 0x6c, 0x0d, 0xda, 0x11, 0xec, 0x24, 0x87, 0x95, 0xab, 0x8c, 0x0c, 0x35, 0x41, 0x89, 0xc9, 0x6d, - 0x4c, 0x1b, 0x85, 0xac, 0xb9, 0x59, 0xb4, 0x11, 0x26, 0x62, 0xdd, 0xcb, 0xb0, 0x0f, 0x85, 0x9d, - 0x9b, 0x98, 0x3e, 0xf4, 0x89, 0x44, 0x44, 0x2d, 0xbb, 0x22, 0xcd, 0x3e, 0xc9, 0x9a, 0x9d, 0xc3, - 0x37, 0x27, 0x39, 0xbc, 0x7d, 0x33, 0x87, 0x8a, 0x30, 0xa0, 0xbb, 0x3f, 0x94, 0xb8, 0xe0, 0x3f, - 0x99, 0x53, 0x34, 0xb5, 0x14, 0x78, 0x92, 0xc3, 0x1b, 0x46, 0x56, 0x78, 0x54, 0x84, 0x82, 0x20, - 0xdc, 0xa4, 0x42, 0xfd, 0x27, 0x0f, 0xfb, 0xa7, 0xc9, 0xb7, 0x6a, 0xfc, 0xb8, 0x91, 0xef, 0x80, - 0xcb, 0x8e, 0x46, 0x47, 0x99, 0x11, 0x1b, 0xba, 0x56, 0xb3, 0xae, 0xef, 0x36, 0xd7, 0xe4, 0x2c, - 0x0d, 0xbf, 0x2d, 0x7d, 0xe6, 0x10, 0xcb, 0x8d, 0xe7, 0x64, 0xbc, 0x0b, 0xbf, 0x2d, 0x1e, 0x67, - 0xbf, 0x52, 0x43, 0xc4, 0xff, 0x99, 0x64, 0x8b, 0x76, 0xa1, 0x98, 0xe4, 0x24, 0xfe, 0xd1, 0xa4, - 0x7b, 0xf4, 0x18, 0x4a, 0x36, 0x09, 0x5c, 0x63, 0xa8, 0x7b, 0x36, 0x71, 0xe3, 0xcf, 0x0c, 0x44, - 0xa2, 0x73, 0x9b, 0xb8, 0xe1, 0x9c, 0x66, 0xdc, 0x94, 0xaf, 0xbb, 0x8a, 0xc3, 0xa5, 0x3a, 0x84, - 0x47, 0x4d, 0xcb, 0x17, 0x33, 0x2e, 0x8b, 0xe9, 0x55, 0x40, 0x7d, 0x81, 0x8e, 0xe1, 0x5e, 0xda, - 0x9f, 0xe9, 0x04, 0x5d, 0xbb, 0x9b, 0xe4, 0xd4, 0x44, 0xd2, 0x7e, 0xf8, 0xa3, 0x44, 0x2f, 0x1c, - 0xb4, 0xea, 0x6f, 0xf0, 0x78, 0xae, 0x27, 0xdf, 0x63, 0xae, 0x4f, 0xd1, 0x5b, 0x58, 0x33, 0x26, - 0x53, 0x9c, 0x8c, 0xaf, 0x6f, 0xe6, 0xfa, 0x9a, 0xf3, 0x36, 0x38, 0x63, 0xe7, 0xab, 0xbf, 0xf3, - 0xb0, 0x71, 0x27, 0x40, 0xb4, 0x01, 0xf7, 0x3a, 0xb5, 0xf6, 0x2b, 0x1d, 0x6b, 0xed, 0x56, 0x17, - 0xd7, 0x35, 0x25, 0x87, 0x1e, 0x80, 0x52, 0x6f, 0x76, 0xdb, 0x1d, 0x0d, 0x8f, 0xa5, 0x79, 0x74, - 0x1f, 0xd6, 0xb5, 0xb7, 0x5a, 0xbd, 0xdb, 0x69, 0xb4, 0xce, 0xf4, 0x8b, 0xae, 0xd6, 0xd5, 0x94, - 0x05, 0xb4, 0x07, 0xdb, 0x63, 0x61, 0xa2, 0xd4, 0xac, 0x1d, 0x69, 0x4d, 0x65, 0x11, 0x7d, 0x06, - 0xfb, 0x17, 0xdd, 0x5a, 0xb3, 0xd1, 0x79, 0xa7, 0xb7, 0x8e, 0xf5, 0xb6, 0x86, 0x5f, 0x37, 0xea, - 0x9a, 0xde, 0x3e, 0xd7, 0xea, 0x8d, 0xe3, 0x46, 0xbd, 0x16, 0xea, 0x28, 0x4b, 0xa1, 0xdd, 0xf3, - 0x66, 0xf7, 0x65, 0xe3, 0x4c, 0x6f, 0xbd, 0xd6, 0x30, 0x6e, 0xbc, 0xd0, 0x94, 0x65, 0xf4, 0x10, - 0x76, 0xde, 0xb4, 0xf0, 0xab, 0xe3, 0x66, 0xeb, 0x8d, 0x3e, 0xe1, 0xa0, 0x75, 0x76, 0xdc, 0x78, - 0xa9, 0x14, 0xd0, 0x16, 0xa0, 0xc4, 0x59, 0xad, 0xdd, 0x6e, 0xbc, 0x3c, 0x3b, 0xd5, 0xce, 0x3a, - 0xca, 0xca, 0xd1, 0xf3, 0x5f, 0x7e, 0x34, 0x2d, 0x31, 0x0c, 0x7a, 0x15, 0x83, 0x39, 0x55, 0x99, - 0x30, 0xc6, 0xcd, 0x68, 0x51, 0x4d, 0x3f, 0xe5, 0x26, 0x75, 0xab, 0x5e, 0xef, 0xa9, 0xc9, 0xaa, - 0xd3, 0xff, 0xfd, 0x5e, 0x41, 0xce, 0x9f, 0x6f, 0xff, 0x0f, 0x00, 0x00, 0xff, 0xff, 0xeb, 0x2e, - 0x6f, 0x69, 0x5e, 0x0c, 0x00, 0x00, + // 1357 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x57, 0x5b, 0x53, 0xdb, 0xc6, + 0x17, 0xb7, 0xb8, 0x18, 0x73, 0xfc, 0x0f, 0x88, 0x4d, 0x00, 0x03, 0xff, 0x24, 0xd4, 0xbd, 0x84, + 0xb6, 0x13, 0xbb, 0x43, 0xfb, 0x90, 0x5e, 0x32, 0x53, 0xe3, 0x88, 0xe0, 0x89, 0xc1, 0xb0, 0xb6, + 0x73, 0xe9, 0x8b, 0x66, 0x2d, 0xaf, 0x85, 0x8a, 0xa4, 0x15, 0xab, 0x15, 0xc6, 0xed, 0x97, 0xe8, + 0x43, 0xfb, 0x51, 0xfa, 0x7d, 0xfa, 0xd6, 0x87, 0xf6, 0x43, 0x74, 0xb4, 0xba, 0xd8, 0x16, 0x76, + 0x26, 0x6f, 0xda, 0xb3, 0xbf, 0x73, 0xd9, 0xb3, 0xe7, 0xfc, 0xce, 0x0a, 0x9e, 0x0c, 0xec, 0x91, + 0xa0, 0x56, 0xdf, 0xae, 0x92, 0xbe, 0x63, 0xb9, 0x55, 0x87, 0x08, 0xe3, 0x92, 0xf4, 0x6c, 0xaa, + 0x73, 0xea, 0xb3, 0x80, 0x1b, 0xb4, 0xe2, 0x71, 0x26, 0x18, 0x5a, 0x4b, 0x80, 0x15, 0x09, 0xdc, + 0xdd, 0xcb, 0x28, 0x1a, 0xcc, 0x71, 0x98, 0x1b, 0x81, 0x77, 0xb3, 0x56, 0x0d, 0x3b, 0xf0, 0x05, + 0xe5, 0x3a, 0xf1, 0x7d, 0xcb, 0x74, 0x1d, 0xea, 0x8a, 0x18, 0xf8, 0x30, 0x05, 0x1a, 0x8c, 0xd3, + 0x2a, 0xbd, 0xa5, 0x46, 0x20, 0xac, 0xd4, 0xce, 0xff, 0xa7, 0xb7, 0x7d, 0x6a, 0x04, 0xdc, 0x12, + 0xa3, 0x78, 0xf7, 0x91, 0xc9, 0x98, 0x69, 0xd3, 0xaa, 0x5c, 0xf5, 0x82, 0x41, 0x75, 0xc8, 0x89, + 0xe7, 0x51, 0xee, 0x47, 0xfb, 0xe5, 0x3f, 0x14, 0x50, 0x3b, 0xc4, 0xbf, 0xc2, 0xf1, 0x49, 0xda, + 0x1e, 0x35, 0x90, 0x0a, 0x8b, 0x86, 0x17, 0x94, 0x94, 0x7d, 0xe5, 0x60, 0x15, 0x87, 0x9f, 0xa1, + 0xc4, 0xf4, 0x82, 0xd2, 0x42, 0x24, 0x31, 0xbd, 0x00, 0x6d, 0x41, 0xde, 0xa1, 0x0e, 0xe3, 0xa3, + 0xd2, 0xa2, 0x14, 0xc6, 0x2b, 0x54, 0x82, 0x15, 0x5f, 0x30, 0x4e, 0x4c, 0x5a, 0x5a, 0x92, 0x1b, + 0xc9, 0x12, 0x7d, 0x09, 0x1b, 0xd4, 0xbb, 0xa4, 0x0e, 0xe5, 0xc4, 0xd6, 0x13, 0xcc, 0xb2, 0xc4, + 0xa8, 0xe9, 0x46, 0x3b, 0x92, 0x97, 0x7f, 0x53, 0x60, 0x6b, 0x32, 0xae, 0x9a, 0x10, 0xdc, 0xea, + 0x05, 0x82, 0xfa, 0xe8, 0x07, 0x28, 0xf4, 0xe9, 0x80, 0x04, 0xb6, 0xf0, 0x65, 0x88, 0xc5, 0xc3, + 0xfd, 0xca, 0x74, 0xe2, 0x2b, 0xd9, 0x13, 0xe1, 0x54, 0x03, 0x3d, 0x83, 0xbc, 0x6d, 0x39, 0x96, + 0xf0, 0xe5, 0x61, 0x3e, 0x44, 0x37, 0xc6, 0x97, 0xff, 0x54, 0x60, 0xa7, 0x1e, 0x5d, 0xd2, 0x8c, + 0xa8, 0xde, 0x01, 0x90, 0x74, 0x55, 0x52, 0xf6, 0x17, 0x0f, 0x8a, 0x87, 0xdf, 0x66, 0x6d, 0xcf, + 0x55, 0xaf, 0x8c, 0x3f, 0x35, 0x57, 0xf0, 0x11, 0x9e, 0x30, 0xb6, 0xfb, 0x1c, 0xd6, 0x33, 0xdb, + 0xe1, 0x7d, 0x5c, 0xd1, 0x51, 0x72, 0x43, 0x57, 0x74, 0x84, 0x1e, 0xc0, 0xf2, 0x0d, 0xb1, 0x03, + 0x1a, 0xdf, 0x51, 0xb4, 0xf8, 0x6e, 0xe1, 0x99, 0x52, 0xae, 0x40, 0x49, 0x4b, 0x6a, 0xe6, 0x22, + 0xa0, 0xc1, 0x64, 0xd4, 0x08, 0x96, 0x04, 0x31, 0xa3, 0x78, 0x57, 0xb1, 0xfc, 0x2e, 0x3f, 0x85, + 0xcd, 0x14, 0x1f, 0x07, 0xdc, 0x24, 0x3d, 0x6a, 0x8f, 0x5d, 0x28, 0x13, 0x2e, 0xca, 0xff, 0x2a, + 0xb0, 0x76, 0x6e, 0x07, 0xa6, 0xe5, 0xb6, 0x6e, 0x28, 0xe7, 0x56, 0x9f, 0xa2, 0x3d, 0x58, 0x15, + 0xc4, 0xbf, 0xd2, 0xc5, 0xc8, 0x4b, 0xc0, 0x85, 0x50, 0xd0, 0x19, 0x79, 0x72, 0xd3, 0x93, 0x70, + 0xdd, 0xea, 0x97, 0x16, 0xa4, 0xdf, 0x42, 0x24, 0x68, 0xf4, 0x91, 0x0d, 0xdb, 0x8e, 0xe5, 0xfb, + 0x96, 0x6b, 0xea, 0x31, 0xa8, 0x47, 0x2f, 0xc9, 0x8d, 0xc5, 0xb8, 0xac, 0xa6, 0xb5, 0xc3, 0x6f, + 0xb2, 0x29, 0x9d, 0x76, 0x5d, 0x39, 0x8d, 0xb4, 0x23, 0xe9, 0x51, 0xac, 0x8b, 0x37, 0x9d, 0x59, + 0xe2, 0xf2, 0x21, 0x6c, 0xce, 0xc4, 0xa3, 0x02, 0x2c, 0x1d, 0xd7, 0x1a, 0x4d, 0x35, 0x87, 0xd6, + 0xa1, 0xd8, 0x6d, 0x6b, 0xfa, 0x0b, 0xed, 0xb8, 0xd6, 0x6d, 0x76, 0x54, 0xa5, 0xdc, 0x82, 0xf5, + 0x69, 0x97, 0x61, 0x41, 0xae, 0xb2, 0x64, 0x11, 0xdf, 0xfc, 0xa3, 0xf7, 0x87, 0x89, 0xc7, 0x0a, + 0xe5, 0x7f, 0x16, 0x61, 0xfb, 0x0d, 0xe3, 0x57, 0x03, 0x9b, 0x0d, 0xc7, 0x79, 0x67, 0xee, 0xc0, + 0x32, 0xd1, 0x13, 0x58, 0x77, 0xc8, 0xad, 0xee, 0x11, 0x4e, 0x6c, 0x9b, 0xda, 0x96, 0xef, 0xc8, + 0x74, 0x2e, 0xe3, 0x35, 0x87, 0xdc, 0x9e, 0x8f, 0xa5, 0xa8, 0x01, 0x6a, 0xd2, 0xf8, 0xba, 0xc1, + 0x5c, 0x41, 0x6f, 0x45, 0x5c, 0xdf, 0x13, 0x91, 0x84, 0xfc, 0x50, 0x69, 0xc7, 0xb0, 0x7a, 0x84, + 0xc2, 0xeb, 0xfe, 0xb4, 0x00, 0xbd, 0x85, 0x2d, 0x4e, 0x86, 0x3a, 0x0b, 0x84, 0x17, 0x08, 0xbd, + 0x4f, 0x04, 0x09, 0x2d, 0x0e, 0x2c, 0x53, 0x36, 0x7a, 0xf1, 0xf0, 0xe3, 0xec, 0xd1, 0x30, 0x19, + 0xb6, 0x24, 0xf8, 0x05, 0x11, 0x24, 0x0a, 0x1c, 0xdf, 0xe7, 0x77, 0x85, 0xa8, 0x02, 0x79, 0x3b, + 0x2c, 0x24, 0x5f, 0xde, 0x65, 0xf1, 0x70, 0x2b, 0x6b, 0x49, 0x96, 0x99, 0x8f, 0x63, 0x14, 0x7a, + 0x0e, 0x45, 0xe2, 0xba, 0x4c, 0x90, 0x30, 0x23, 0xbe, 0xa4, 0x8a, 0xe2, 0xe1, 0x5e, 0x56, 0xa9, + 0x36, 0x86, 0xe0, 0x49, 0x3c, 0xfa, 0x11, 0xee, 0x59, 0xae, 0xa0, 0x9c, 0x07, 0x9e, 0xb0, 0x7a, + 0x36, 0x2d, 0xe5, 0xa5, 0x81, 0xdd, 0x4a, 0x44, 0x89, 0x95, 0x84, 0x12, 0x2b, 0x47, 0x8c, 0xd9, + 0xaf, 0xc3, 0x5a, 0xc6, 0xd3, 0x0a, 0x61, 0xfa, 0xc3, 0x7b, 0x1a, 0x72, 0x4b, 0x50, 0xdd, 0x20, + 0xc6, 0x25, 0x2d, 0xad, 0xec, 0x2b, 0x07, 0x05, 0xbc, 0x96, 0x8a, 0xeb, 0xa1, 0x14, 0x1d, 0xc0, + 0x12, 0x75, 0x6f, 0xfc, 0x52, 0x41, 0x7a, 0x78, 0x90, 0x0d, 0x51, 0x73, 0x6f, 0x7c, 0x2c, 0x11, + 0xe5, 0xdf, 0xf3, 0x80, 0x4e, 0xc3, 0xf9, 0x61, 0xb9, 0xe6, 0x44, 0x1f, 0xf6, 0xa0, 0x24, 0x3b, + 0x26, 0x19, 0x28, 0xfa, 0x14, 0x97, 0x84, 0x46, 0x3f, 0x7b, 0x1f, 0x4f, 0x8d, 0x2d, 0x9d, 0xe4, + 0xf0, 0x96, 0x98, 0xcd, 0x9b, 0x57, 0xb0, 0x97, 0xcc, 0x98, 0x59, 0x6e, 0xa2, 0x72, 0xf9, 0xfc, + 0x83, 0x29, 0xeb, 0x24, 0x87, 0x77, 0x8c, 0xb9, 0x74, 0x78, 0x09, 0xbb, 0xe9, 0xa0, 0xd2, 0xaf, + 0x43, 0xd6, 0x99, 0xf4, 0x15, 0x55, 0xd2, 0xc1, 0x9d, 0x3c, 0xcd, 0xa1, 0xa9, 0x93, 0x1c, 0x2e, + 0xd1, 0x79, 0x14, 0xa6, 0xc3, 0xf6, 0xd8, 0x53, 0x72, 0x40, 0x59, 0x41, 0x71, 0x99, 0x7d, 0x3a, + 0xd7, 0xcd, 0x24, 0xbb, 0x9d, 0xe4, 0xf0, 0x26, 0x9d, 0x49, 0x7b, 0x2d, 0x40, 0xd7, 0x01, 0xb1, + 0xc3, 0xd6, 0x62, 0x03, 0xdd, 0xa7, 0xfc, 0xc6, 0x32, 0x68, 0x5c, 0x8d, 0x8f, 0x33, 0xdd, 0x75, + 0x11, 0x01, 0x5b, 0x83, 0x76, 0x04, 0x3b, 0xc9, 0x61, 0xf5, 0x3a, 0x23, 0x43, 0x4d, 0x50, 0x63, + 0x72, 0x1b, 0xd3, 0x46, 0x3e, 0x6b, 0x6e, 0x16, 0x6d, 0x84, 0x89, 0x58, 0xf7, 0x32, 0xec, 0x43, + 0x61, 0x67, 0x18, 0xd3, 0x87, 0x3e, 0x91, 0x88, 0xa8, 0x65, 0x57, 0xa4, 0xd9, 0x27, 0x59, 0xb3, + 0x73, 0xf8, 0xe6, 0x24, 0x87, 0xb7, 0x87, 0x73, 0xa8, 0x08, 0x03, 0xba, 0xfb, 0x42, 0x89, 0x0b, + 0xfe, 0xa3, 0x39, 0x45, 0x53, 0x4b, 0x81, 0x27, 0x39, 0xbc, 0x61, 0x64, 0x85, 0x47, 0x05, 0xc8, + 0x0b, 0xc2, 0x4d, 0x2a, 0xca, 0x7f, 0x2b, 0xb0, 0x7f, 0x9a, 0x3c, 0xab, 0xc6, 0x97, 0x1b, 0xf9, + 0x0e, 0xb8, 0xec, 0x68, 0x74, 0x94, 0x19, 0xb1, 0xa1, 0xeb, 0x72, 0xd6, 0xf5, 0xdd, 0xe6, 0x9a, + 0x9c, 0xa5, 0xe1, 0xb3, 0xa5, 0xcf, 0x1c, 0x62, 0xb9, 0xf1, 0x9c, 0x8c, 0x57, 0xe1, 0xb3, 0xc5, + 0xe3, 0xec, 0x67, 0x6a, 0x88, 0xf8, 0x3d, 0x93, 0x2c, 0xd1, 0x2e, 0x14, 0x92, 0x9c, 0xc4, 0x2f, + 0x9a, 0x74, 0x8d, 0x1e, 0x43, 0xd1, 0x26, 0x81, 0x6b, 0x5c, 0xea, 0x9e, 0x4d, 0xdc, 0xf8, 0x31, + 0x03, 0x91, 0xe8, 0xdc, 0x26, 0x6e, 0x38, 0xa7, 0x19, 0x37, 0xe5, 0xed, 0xae, 0xe2, 0xf0, 0xb3, + 0xfc, 0x0b, 0x3c, 0x6a, 0x5a, 0xbe, 0x98, 0x71, 0x58, 0x4c, 0xaf, 0x03, 0xea, 0x0b, 0x74, 0x0c, + 0xf7, 0xd2, 0xfe, 0x4c, 0x27, 0xe8, 0xda, 0xdd, 0x24, 0xa7, 0x26, 0x92, 0xf6, 0xc3, 0xff, 0x4b, + 0xf4, 0xe4, 0xa0, 0x8d, 0x7d, 0x2f, 0x8c, 0x7d, 0xff, 0x0a, 0x8f, 0xe7, 0xfa, 0xf6, 0x3d, 0xe6, + 0xfa, 0x14, 0xbd, 0x85, 0x35, 0x63, 0x32, 0xe9, 0xc9, 0x40, 0xfb, 0x6a, 0xae, 0xf7, 0x39, 0xb7, + 0x85, 0x33, 0x76, 0xbe, 0xf8, 0x4b, 0x81, 0x8d, 0x3b, 0x21, 0xa3, 0x0d, 0xb8, 0xd7, 0xa9, 0xb5, + 0x5f, 0xe9, 0x58, 0x6b, 0xb7, 0xba, 0xb8, 0xae, 0xa9, 0x39, 0xf4, 0x00, 0xd4, 0x7a, 0xb3, 0xdb, + 0xee, 0x68, 0x78, 0x2c, 0x55, 0xd0, 0x7d, 0x58, 0xd7, 0xde, 0x6a, 0xf5, 0x6e, 0xa7, 0xd1, 0x3a, + 0xd3, 0x2f, 0xba, 0x5a, 0x57, 0x53, 0x17, 0xd0, 0x1e, 0x6c, 0x8f, 0x85, 0x89, 0x52, 0xb3, 0x76, + 0xa4, 0x35, 0xd5, 0x45, 0xf4, 0x09, 0xec, 0x5f, 0x74, 0x6b, 0xcd, 0x46, 0xe7, 0x9d, 0xde, 0x3a, + 0xd6, 0xdb, 0x1a, 0x7e, 0xdd, 0xa8, 0x6b, 0x7a, 0xfb, 0x5c, 0xab, 0x37, 0x8e, 0x1b, 0xf5, 0x5a, + 0xa8, 0xa3, 0x2e, 0x85, 0x76, 0xcf, 0x9b, 0xdd, 0x97, 0x8d, 0x33, 0xbd, 0xf5, 0x5a, 0xc3, 0xb8, + 0xf1, 0x42, 0x53, 0x97, 0xd1, 0x43, 0xd8, 0x79, 0xd3, 0xc2, 0xaf, 0x8e, 0x9b, 0xad, 0x37, 0xfa, + 0x84, 0x83, 0xd6, 0xd9, 0x71, 0xe3, 0xa5, 0x9a, 0x47, 0x5b, 0x80, 0x12, 0x67, 0xb5, 0x76, 0xbb, + 0xf1, 0xf2, 0xec, 0x54, 0x3b, 0xeb, 0xa8, 0x2b, 0x47, 0xcf, 0x7f, 0xfa, 0xde, 0xb4, 0xc4, 0x65, + 0xd0, 0xab, 0x18, 0xcc, 0xa9, 0xca, 0x84, 0x31, 0x6e, 0x46, 0x1f, 0xd5, 0xf4, 0x99, 0x6e, 0x52, + 0xb7, 0xea, 0xf5, 0x9e, 0x9a, 0xac, 0x3a, 0xfd, 0x07, 0xd0, 0xcb, 0xcb, 0x89, 0xf4, 0xf5, 0x7f, + 0x01, 0x00, 0x00, 0xff, 0xff, 0xe3, 0xc1, 0x68, 0x9a, 0x70, 0x0c, 0x00, 0x00, } diff --git a/flyteidl/gen/pb-go/flyteidl/admin/project.pb.go b/flyteidl/gen/pb-go/flyteidl/admin/project.pb.go index 790ab90e6d..7864459c54 100644 --- a/flyteidl/gen/pb-go/flyteidl/admin/project.pb.go +++ b/flyteidl/gen/pb-go/flyteidl/admin/project.pb.go @@ -263,7 +263,9 @@ type ProjectListRequest struct { Filters string `protobuf:"bytes,3,opt,name=filters,proto3" json:"filters,omitempty"` // Sort ordering. // +optional - SortBy *Sort `protobuf:"bytes,4,opt,name=sort_by,json=sortBy,proto3" json:"sort_by,omitempty"` + SortBy *Sort `protobuf:"bytes,4,opt,name=sort_by,json=sortBy,proto3" json:"sort_by,omitempty"` + // Optional, org filter applied to list project requests. + Org string `protobuf:"bytes,5,opt,name=org,proto3" json:"org,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -322,6 +324,13 @@ func (m *ProjectListRequest) GetSortBy() *Sort { return nil } +func (m *ProjectListRequest) GetOrg() string { + if m != nil { + return m.Org + } + return "" +} + // Adds a new user-project within the Flyte deployment. // See :ref:`ref_flyteidl.admin.Project` for more details type ProjectRegisterRequest struct { @@ -442,35 +451,35 @@ func init() { func init() { proto.RegisterFile("flyteidl/admin/project.proto", fileDescriptor_2db065ce03bf106d) } var fileDescriptor_2db065ce03bf106d = []byte{ - // 468 bytes of a gzipped FileDescriptorProto + // 474 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x93, 0xcd, 0x6e, 0xd3, 0x40, 0x10, 0xc7, 0xb1, 0xd3, 0xd8, 0x61, 0x52, 0x22, 0x6b, 0x15, 0x9a, 0xe5, 0xe3, 0x60, 0x59, 0x1c, 0x72, 0xa0, 0x36, 0xa4, 0x37, 0x10, 0x48, 0x69, 0x63, 0x41, 0x45, 0x41, 0x68, 0x93, 0x56, 0x82, - 0x4b, 0x65, 0xc7, 0x5b, 0xb3, 0x60, 0x7b, 0xcd, 0xee, 0xf6, 0x90, 0x47, 0xe0, 0xa9, 0x78, 0x35, - 0xe4, 0xf5, 0xba, 0x6a, 0x43, 0x41, 0x3d, 0x79, 0x3e, 0x7e, 0x9e, 0xf9, 0xcf, 0x8e, 0x06, 0x9e, - 0x5e, 0x14, 0x1b, 0x45, 0x59, 0x56, 0x44, 0x49, 0x56, 0xb2, 0x2a, 0xaa, 0x05, 0xff, 0x4e, 0xd7, - 0x2a, 0xac, 0x05, 0x57, 0x1c, 0x8d, 0xba, 0x6c, 0xa8, 0xb3, 0x8f, 0x9f, 0x6c, 0xd1, 0x6b, 0x5e, - 0x96, 0xbc, 0x6a, 0xe1, 0xe0, 0x39, 0x38, 0x0b, 0x5e, 0x26, 0xac, 0x42, 0x23, 0xb0, 0x59, 0x86, - 0x2d, 0xdf, 0x9a, 0xde, 0x27, 0x36, 0xcb, 0x10, 0x82, 0x9d, 0x2a, 0x29, 0x29, 0xb6, 0x75, 0x44, - 0xdb, 0xc1, 0x6f, 0x1b, 0xdc, 0xcf, 0x6d, 0xb3, 0xbb, 0xf0, 0xe8, 0x05, 0xb8, 0x99, 0xae, 0x2e, - 0x71, 0xcf, 0xef, 0x4d, 0x87, 0xb3, 0xbd, 0xf0, 0xa6, 0xb8, 0xb0, 0x6d, 0x4e, 0x3a, 0x0c, 0xf9, - 0x30, 0xcc, 0xa8, 0x5c, 0x0b, 0x56, 0x2b, 0xc6, 0x2b, 0xbc, 0xa3, 0x8b, 0x5d, 0x0f, 0xa1, 0x10, - 0x9c, 0x22, 0x49, 0x69, 0x21, 0x71, 0xdf, 0xb7, 0x6e, 0x2b, 0x79, 0xa2, 0xb3, 0xc4, 0x50, 0xe8, - 0x15, 0xf4, 0xa5, 0x4a, 0x14, 0xc5, 0x8e, 0x6f, 0x4d, 0x47, 0xb3, 0x67, 0xdb, 0xb8, 0x99, 0xa7, - 0xfb, 0x2e, 0x1b, 0x96, 0xb4, 0xbf, 0x20, 0x0f, 0x7a, 0x5c, 0xe4, 0xd8, 0xd5, 0x2a, 0x1a, 0x33, - 0x78, 0x0b, 0xbb, 0xd7, 0x41, 0x04, 0xe0, 0xcc, 0x8f, 0x56, 0xc7, 0x67, 0xb1, 0x77, 0x0f, 0xed, - 0xc2, 0x60, 0x4e, 0x8e, 0xde, 0x1f, 0x9f, 0xc5, 0x0b, 0xcf, 0x42, 0x63, 0xf0, 0x96, 0x5f, 0x96, - 0xab, 0xf8, 0xe3, 0xf9, 0xbb, 0xf8, 0x53, 0x4c, 0xe6, 0xab, 0x78, 0xe1, 0xd9, 0xc1, 0x29, 0x0c, - 0xcc, 0xff, 0x12, 0x1d, 0xc0, 0xc0, 0x6c, 0x4e, 0x62, 0x4b, 0x3f, 0xcf, 0xe4, 0x1f, 0xe2, 0xc8, - 0x15, 0x88, 0xc6, 0xd0, 0x57, 0xfc, 0x07, 0xad, 0xcc, 0x3b, 0xb7, 0x4e, 0xf0, 0xcb, 0x02, 0x64, - 0xd8, 0x13, 0x26, 0x15, 0xa1, 0x3f, 0x2f, 0xa9, 0x54, 0x0d, 0x5c, 0xb0, 0x92, 0x29, 0xbd, 0xa6, - 0x07, 0xa4, 0x75, 0x6e, 0x2f, 0x81, 0x30, 0xb8, 0x17, 0xac, 0x50, 0x54, 0x34, 0xbb, 0x6a, 0xe2, - 0x9d, 0x8b, 0xf6, 0xc1, 0x95, 0x5c, 0xa8, 0xf3, 0x74, 0xa3, 0xf7, 0x31, 0x9c, 0x8d, 0xb7, 0x65, - 0x2e, 0xb9, 0x50, 0xc4, 0x69, 0xa0, 0xc3, 0x4d, 0xf0, 0x01, 0xf6, 0x3a, 0xd9, 0x34, 0x67, 0x52, - 0x51, 0xd1, 0xc9, 0x79, 0x09, 0xae, 0x99, 0x43, 0x0b, 0xfa, 0xcf, 0xbc, 0x1d, 0x17, 0x3c, 0x82, - 0xc9, 0x5f, 0xc5, 0x64, 0xcd, 0x2b, 0x49, 0x83, 0x09, 0x3c, 0x34, 0xa9, 0xd3, 0x3a, 0x6b, 0x96, - 0x66, 0x12, 0x87, 0x6f, 0xbe, 0xbe, 0xce, 0x99, 0xfa, 0x76, 0x99, 0x86, 0x6b, 0x5e, 0x46, 0xba, - 0x03, 0x17, 0x79, 0x6b, 0x44, 0x57, 0xc7, 0x90, 0xd3, 0x2a, 0xaa, 0xd3, 0xfd, 0x9c, 0x47, 0x37, - 0xef, 0x23, 0x75, 0xf4, 0x65, 0x1c, 0xfc, 0x09, 0x00, 0x00, 0xff, 0xff, 0xb2, 0x1f, 0xe5, 0x14, - 0x66, 0x03, 0x00, 0x00, + 0x4b, 0x65, 0xc7, 0x5b, 0xb3, 0x60, 0x7b, 0xcd, 0xee, 0xf6, 0x90, 0x67, 0xe1, 0x61, 0x78, 0x35, + 0xe4, 0xf5, 0xba, 0xb4, 0xa1, 0x20, 0x4e, 0xde, 0x99, 0xf9, 0x79, 0xe6, 0x3f, 0x33, 0x1a, 0x78, + 0x7c, 0x51, 0x6c, 0x14, 0x65, 0x59, 0x11, 0x25, 0x59, 0xc9, 0xaa, 0xa8, 0x16, 0xfc, 0x2b, 0x5d, + 0xab, 0xb0, 0x16, 0x5c, 0x71, 0x34, 0xea, 0xa2, 0xa1, 0x8e, 0x3e, 0x7c, 0xb4, 0x45, 0xaf, 0x79, + 0x59, 0xf2, 0xaa, 0x85, 0x83, 0xa7, 0xe0, 0x2c, 0x78, 0x99, 0xb0, 0x0a, 0x8d, 0xc0, 0x66, 0x19, + 0xb6, 0x7c, 0x6b, 0x7a, 0x97, 0xd8, 0x2c, 0x43, 0x08, 0x76, 0xaa, 0xa4, 0xa4, 0xd8, 0xd6, 0x1e, + 0xfd, 0x0e, 0x7e, 0xda, 0xe0, 0x7e, 0x6c, 0x8b, 0xfd, 0x0f, 0x8f, 0x9e, 0x81, 0x9b, 0xe9, 0xec, + 0x12, 0xf7, 0xfc, 0xde, 0x74, 0x38, 0xdb, 0x0b, 0x6f, 0x8a, 0x0b, 0xdb, 0xe2, 0xa4, 0xc3, 0x90, + 0x0f, 0xc3, 0x8c, 0xca, 0xb5, 0x60, 0xb5, 0x62, 0xbc, 0xc2, 0x3b, 0x3a, 0xd9, 0x75, 0x17, 0x0a, + 0xc1, 0x29, 0x92, 0x94, 0x16, 0x12, 0xf7, 0x7d, 0xeb, 0xb6, 0x94, 0x27, 0x3a, 0x4a, 0x0c, 0x85, + 0x5e, 0x40, 0x5f, 0xaa, 0x44, 0x51, 0xec, 0xf8, 0xd6, 0x74, 0x34, 0x7b, 0xb2, 0x8d, 0x9b, 0x7e, + 0xba, 0xef, 0xb2, 0x61, 0x49, 0xfb, 0x0b, 0xf2, 0xa0, 0xc7, 0x45, 0x8e, 0x5d, 0xad, 0xa2, 0x79, + 0x06, 0xaf, 0x61, 0xf7, 0x3a, 0x88, 0x00, 0x9c, 0xf9, 0xd1, 0xea, 0xf8, 0x2c, 0xf6, 0xee, 0xa0, + 0x5d, 0x18, 0xcc, 0xc9, 0xd1, 0xdb, 0xe3, 0xb3, 0x78, 0xe1, 0x59, 0x68, 0x0c, 0xde, 0xf2, 0xd3, + 0x72, 0x15, 0xbf, 0x3f, 0x7f, 0x13, 0x7f, 0x88, 0xc9, 0x7c, 0x15, 0x2f, 0x3c, 0x3b, 0x38, 0x85, + 0x81, 0xf9, 0x5f, 0xa2, 0x03, 0x18, 0x98, 0xcd, 0x49, 0x6c, 0xe9, 0xf1, 0x4c, 0xfe, 0x22, 0x8e, + 0x5c, 0x81, 0x68, 0x0c, 0x7d, 0xc5, 0xbf, 0xd1, 0xca, 0xcc, 0xb9, 0x35, 0x82, 0x1f, 0x16, 0x20, + 0xc3, 0x9e, 0x30, 0xa9, 0x08, 0xfd, 0x7e, 0x49, 0xa5, 0x6a, 0xe0, 0x82, 0x95, 0x4c, 0xe9, 0x35, + 0xdd, 0x23, 0xad, 0x71, 0x7b, 0x0a, 0x84, 0xc1, 0xbd, 0x60, 0x85, 0xa2, 0xa2, 0xd9, 0x55, 0xe3, + 0xef, 0x4c, 0xb4, 0x0f, 0xae, 0xe4, 0x42, 0x9d, 0xa7, 0x1b, 0xbd, 0x8f, 0xe1, 0x6c, 0xbc, 0x2d, + 0x73, 0xc9, 0x85, 0x22, 0x4e, 0x03, 0x1d, 0x6e, 0xba, 0xa1, 0xf5, 0x7f, 0x0f, 0xed, 0x1d, 0xec, + 0x75, 0x8d, 0xd0, 0x9c, 0x49, 0x45, 0x45, 0x27, 0xf0, 0x39, 0xb8, 0xa6, 0x33, 0x2d, 0xf1, 0x1f, + 0x13, 0xe8, 0xb8, 0xe0, 0x01, 0x4c, 0xfe, 0x48, 0x26, 0x6b, 0x5e, 0x49, 0x1a, 0x4c, 0xe0, 0xbe, + 0x09, 0x9d, 0xd6, 0x59, 0xb3, 0x46, 0x13, 0x38, 0x7c, 0xf5, 0xf9, 0x65, 0xce, 0xd4, 0x97, 0xcb, + 0x34, 0x5c, 0xf3, 0x32, 0xd2, 0x15, 0xb8, 0xc8, 0xdb, 0x47, 0x74, 0x75, 0x1e, 0x39, 0xad, 0xa2, + 0x3a, 0xdd, 0xcf, 0x79, 0x74, 0xf3, 0x62, 0x52, 0x47, 0xdf, 0xca, 0xc1, 0xaf, 0x00, 0x00, 0x00, + 0xff, 0xff, 0xed, 0xc0, 0x53, 0xec, 0x78, 0x03, 0x00, 0x00, } diff --git a/flyteidl/gen/pb-go/flyteidl/service/admin.pb.go b/flyteidl/gen/pb-go/flyteidl/service/admin.pb.go index 6b0eaa86a8..db03215645 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/admin.pb.go +++ b/flyteidl/gen/pb-go/flyteidl/service/admin.pb.go @@ -29,172 +29,181 @@ const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package func init() { proto.RegisterFile("flyteidl/service/admin.proto", fileDescriptor_5cfa31da1d67295d) } var fileDescriptor_5cfa31da1d67295d = []byte{ - // 2633 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5b, 0x5b, 0x6c, 0x1c, 0x57, - 0x19, 0xd6, 0x19, 0xa7, 0x04, 0x4e, 0x73, 0x71, 0xfe, 0x26, 0xd8, 0x99, 0xc4, 0x49, 0x3a, 0xb9, - 0x38, 0x59, 0x27, 0x1e, 0x37, 0x69, 0x5a, 0x6a, 0x51, 0xda, 0x34, 0x76, 0x96, 0xb4, 0x49, 0x1a, - 0x9c, 0x50, 0x60, 0x8b, 0x58, 0x8d, 0x77, 0x4f, 0x9c, 0x69, 0x76, 0x77, 0xb6, 0x33, 0x63, 0xb7, - 0x56, 0xe4, 0x02, 0x35, 0x84, 0xb4, 0x95, 0x13, 0xa4, 0x90, 0xa0, 0x8a, 0xb6, 0x42, 0x48, 0x95, - 0xb8, 0x3d, 0x21, 0x95, 0x27, 0x1e, 0x78, 0x89, 0x54, 0x51, 0x21, 0xb5, 0x2a, 0x97, 0x4a, 0xe4, - 0x09, 0x45, 0x4a, 0x25, 0x10, 0x50, 0x78, 0x00, 0x1e, 0x40, 0x68, 0xce, 0x65, 0xe7, 0x7a, 0xe6, - 0xb2, 0xb6, 0xab, 0x4a, 0xe4, 0xcd, 0xde, 0xff, 0x3b, 0xff, 0xf9, 0xff, 0xef, 0xbf, 0x9c, 0x73, - 0x66, 0xce, 0xe0, 0xcd, 0x67, 0x1a, 0xb3, 0x2e, 0x31, 0xeb, 0x0d, 0xdd, 0x21, 0xf6, 0x8c, 0x59, - 0x23, 0xba, 0x51, 0x6f, 0x9a, 0xad, 0xe1, 0xb6, 0x6d, 0xb9, 0x16, 0xf4, 0x0a, 0xe9, 0x30, 0x97, - 0xaa, 0x9b, 0xa7, 0x2c, 0x6b, 0xaa, 0x41, 0x74, 0xa3, 0x6d, 0xea, 0x46, 0xab, 0x65, 0xb9, 0x86, - 0x6b, 0x5a, 0x2d, 0x87, 0xe1, 0x55, 0x5f, 0x1b, 0xd5, 0xa2, 0xb7, 0x6d, 0xeb, 0x29, 0x52, 0x73, - 0xb9, 0x74, 0x38, 0x59, 0x5a, 0xad, 0x5b, 0x4d, 0xc3, 0x6c, 0x55, 0x0d, 0xd7, 0xb5, 0xcd, 0xc9, - 0x69, 0x97, 0x08, 0x6d, 0x83, 0x12, 0x7c, 0x0c, 0xb8, 0x31, 0x02, 0x74, 0x0d, 0xe7, 0x1c, 0x17, - 0x0d, 0x44, 0x44, 0xcf, 0x58, 0xf6, 0xb9, 0x33, 0x0d, 0xeb, 0x19, 0x2e, 0xde, 0x2d, 0x11, 0xc7, - 0xe7, 0xd8, 0x16, 0x41, 0x36, 0x8c, 0xe9, 0x56, 0xed, 0x6c, 0xb5, 0xdd, 0x30, 0x38, 0x59, 0xaa, - 0x1a, 0x41, 0x90, 0x19, 0xd2, 0x12, 0xae, 0x6f, 0x89, 0xca, 0x9e, 0x25, 0xb5, 0x69, 0x8f, 0x39, - 0x89, 0xab, 0x4d, 0xc3, 0xad, 0x9d, 0x35, 0x26, 0x1b, 0xa4, 0x6a, 0x13, 0xc7, 0x9a, 0xb6, 0x6b, - 0x84, 0x03, 0xb7, 0x47, 0x80, 0x2d, 0xab, 0x4e, 0xaa, 0x51, 0x6d, 0xdb, 0x13, 0xf8, 0x88, 0x81, - 0xa2, 0xb1, 0x9a, 0x21, 0xb6, 0xe3, 0x4b, 0x37, 0x45, 0xa4, 0x35, 0xab, 0xd9, 0x94, 0x5a, 0x5b, - 0x27, 0x4e, 0xcd, 0x36, 0xdb, 0x9e, 0xf2, 0x2a, 0x69, 0xb9, 0xa6, 0x3b, 0xcb, 0x80, 0xfb, 0xdf, - 0x78, 0x1a, 0xaf, 0x3a, 0xe4, 0x41, 0x4e, 0xb1, 0xf4, 0x81, 0x26, 0xc6, 0x87, 0x6d, 0x62, 0xb8, - 0xe4, 0xb4, 0xe1, 0x9c, 0x83, 0xbb, 0x3b, 0x19, 0x31, 0xcc, 0xb2, 0xce, 0xfb, 0x95, 0xc9, 0x27, - 0xc8, 0xd3, 0xd3, 0xc4, 0x71, 0x55, 0x2d, 0x0d, 0xe2, 0xb4, 0xad, 0x96, 0x43, 0xb4, 0xfe, 0xe7, - 0xdf, 0xbd, 0x79, 0x45, 0x01, 0x6d, 0x35, 0xcd, 0xca, 0x99, 0x7b, 0xa8, 0xbf, 0xce, 0x28, 0x2a, - 0xc1, 0x7b, 0x08, 0xaf, 0x2c, 0x13, 0x97, 0x4e, 0xb6, 0x2d, 0xaa, 0xe9, 0xf1, 0x49, 0x2f, 0x9b, - 0xca, 0xc4, 0x15, 0x73, 0xad, 0x4f, 0x9a, 0x4b, 0xfb, 0x0e, 0xa2, 0xea, 0x17, 0x10, 0x3c, 0x18, - 0xd2, 0xaf, 0x9f, 0x37, 0xeb, 0xc3, 0x3c, 0x25, 0xe7, 0xe8, 0x3f, 0x2c, 0x8f, 0xd9, 0xdf, 0x2d, - 0xa3, 0x49, 0xd8, 0x5f, 0x9c, 0xd7, 0xb9, 0xca, 0x31, 0x78, 0x34, 0xac, 0xc0, 0xb2, 0xa7, 0x28, - 0xc2, 0xb2, 0xa7, 0xe6, 0x8a, 0x6a, 0x83, 0xeb, 0x08, 0xdf, 0x79, 0xcc, 0x74, 0xa8, 0x6f, 0x47, - 0xeb, 0x0e, 0x8c, 0x44, 0x8d, 0x3f, 0x61, 0x34, 0x49, 0x7d, 0x9c, 0x46, 0xe3, 0x68, 0xdd, 0x8b, - 0xca, 0x19, 0x93, 0xd8, 0xde, 0x08, 0xe1, 0xee, 0x9e, 0xdc, 0x23, 0xb4, 0x2f, 0x51, 0x0a, 0x4e, - 0xc1, 0xf6, 0xa0, 0x03, 0x55, 0xb3, 0xee, 0xe8, 0xe7, 0x7d, 0x9b, 0xb9, 0xc1, 0x95, 0xbd, 0x50, - 0x4a, 0xf0, 0x93, 0x39, 0x19, 0x43, 0xc3, 0x0f, 0x15, 0xfc, 0x09, 0xe1, 0x87, 0x03, 0xdb, 0xa3, - 0x36, 0x4d, 0xf0, 0xf4, 0x0f, 0x1a, 0xde, 0x9f, 0x14, 0x27, 0x6a, 0xe7, 0x1f, 0x58, 0xac, 0x7e, - 0x83, 0x60, 0xa4, 0x68, 0xac, 0x2a, 0x0f, 0x45, 0xe3, 0x5b, 0x30, 0x3c, 0x95, 0xdd, 0xb0, 0x2b, - 0xdf, 0xa4, 0x95, 0x83, 0x70, 0xa0, 0x8b, 0xa9, 0x60, 0x0e, 0xaf, 0x61, 0x99, 0xff, 0x05, 0xde, - 0xa5, 0x60, 0x67, 0x94, 0x09, 0x21, 0x09, 0x17, 0xd1, 0xae, 0x2c, 0x18, 0x2f, 0xa4, 0xcd, 0x94, - 0xbd, 0x4f, 0x6a, 0xeb, 0x84, 0x75, 0xa2, 0x1d, 0xd2, 0x62, 0x7a, 0x1f, 0xe1, 0x3b, 0xcb, 0xc4, - 0xed, 0x4c, 0x9e, 0x5d, 0x50, 0xfd, 0xb2, 0x79, 0xb5, 0x57, 0x58, 0xa0, 0xae, 0x22, 0x38, 0x14, - 0x9b, 0xab, 0x70, 0x61, 0x9d, 0x84, 0x13, 0x71, 0x25, 0x8b, 0x2a, 0xae, 0x77, 0x10, 0x5e, 0xeb, - 0x25, 0x94, 0xb0, 0x77, 0xd9, 0x0b, 0xcc, 0xa0, 0x74, 0x3c, 0x09, 0x83, 0x51, 0x47, 0x64, 0x45, - 0x36, 0x02, 0xc3, 0x12, 0x9f, 0x65, 0x85, 0xf6, 0x4b, 0x05, 0xaf, 0x0e, 0xfa, 0x94, 0xb3, 0xd8, - 0x36, 0xcb, 0x62, 0x48, 0xed, 0xfe, 0x13, 0x8b, 0xe3, 0x4d, 0x04, 0xf7, 0x76, 0x13, 0xc7, 0xca, - 0xe1, 0xa4, 0xf8, 0x17, 0x2d, 0xbc, 0x40, 0xc3, 0xc9, 0x9e, 0xbc, 0xf2, 0x00, 0xdc, 0xdf, 0xe5, - 0x94, 0x70, 0x01, 0xe1, 0x5e, 0x56, 0x32, 0xc7, 0xe8, 0xea, 0x7f, 0xb2, 0x61, 0xb4, 0x60, 0x30, - 0x4a, 0x90, 0x2f, 0x0b, 0x57, 0xe1, 0xee, 0x6c, 0x20, 0xaf, 0xc3, 0xad, 0x94, 0xd4, 0x8d, 0xda, - 0x7a, 0x61, 0x68, 0x60, 0xb3, 0x41, 0x4b, 0xf1, 0xef, 0x08, 0xaf, 0x2e, 0x13, 0x37, 0x60, 0x45, - 0x76, 0x31, 0xaa, 0xf2, 0xe9, 0xb5, 0x1f, 0xb0, 0x30, 0x7e, 0x0f, 0xc1, 0x58, 0xd2, 0x94, 0x85, - 0x2b, 0xf2, 0x14, 0x7c, 0x2e, 0x51, 0xcf, 0xa2, 0x8a, 0xf2, 0x1f, 0x08, 0xdf, 0x55, 0x26, 0xee, - 0xa1, 0x9a, 0x6b, 0xce, 0xa4, 0x06, 0x20, 0x8a, 0xc8, 0xc3, 0xc0, 0x35, 0xc6, 0xc0, 0x65, 0x04, - 0x9f, 0x11, 0x96, 0x1b, 0x54, 0x4d, 0xb5, 0x20, 0x11, 0x95, 0xe3, 0xf0, 0x58, 0x9a, 0x86, 0x82, - 0x14, 0xc0, 0x2b, 0x08, 0x6f, 0xf0, 0x4a, 0x2d, 0xea, 0x94, 0x03, 0x43, 0x59, 0x7e, 0x07, 0xcb, - 0x78, 0x8b, 0xdc, 0x77, 0x5a, 0xc8, 0xf7, 0x51, 0xf7, 0x03, 0x5d, 0x25, 0xd1, 0xfb, 0x78, 0x57, - 0xb9, 0x81, 0xf0, 0x3a, 0x4f, 0x81, 0xaf, 0x6e, 0xd9, 0x7b, 0xe5, 0x53, 0xd4, 0xd4, 0xba, 0x5f, - 0xf4, 0x01, 0x1b, 0x65, 0xed, 0xf2, 0x3e, 0xbf, 0x3f, 0x45, 0xd1, 0xa9, 0x4d, 0xf3, 0x6d, 0x85, - 0x2d, 0x04, 0x41, 0xde, 0x73, 0xb5, 0xcd, 0x2c, 0xbe, 0xff, 0xc9, 0xf2, 0xed, 0x6f, 0xc8, 0xef, - 0x46, 0x45, 0x13, 0xed, 0x88, 0xa4, 0x58, 0x8b, 0xb6, 0x4f, 0x1d, 0xf6, 0x15, 0x32, 0xa1, 0xf2, - 0x69, 0x18, 0xed, 0x7e, 0x62, 0x58, 0x50, 0x70, 0xef, 0xe7, 0xdb, 0xf5, 0xdc, 0x4d, 0x94, 0x61, - 0x73, 0x34, 0x51, 0x01, 0xe4, 0x4d, 0xf4, 0x75, 0xc6, 0xf0, 0x6b, 0x48, 0x5d, 0x92, 0x9e, 0x36, - 0x8a, 0x4a, 0x95, 0x53, 0xea, 0x32, 0xb4, 0xb5, 0xaf, 0x23, 0xbc, 0x96, 0xf5, 0xff, 0x71, 0x71, - 0x42, 0x83, 0xd8, 0x86, 0xad, 0x23, 0x0a, 0x2f, 0x29, 0x83, 0x99, 0x38, 0x4e, 0xc6, 0x00, 0xe5, - 0xa2, 0x4f, 0x03, 0x61, 0x7f, 0xe7, 0x34, 0x48, 0xd7, 0x93, 0x4b, 0x08, 0xaf, 0x9b, 0x20, 0xcc, - 0x27, 0xdf, 0x8a, 0xdd, 0x52, 0xed, 0x02, 0x5b, 0xd8, 0x8e, 0x5d, 0xd4, 0x8e, 0x6d, 0xda, 0xa6, - 0xb8, 0x1d, 0xba, 0xcd, 0x95, 0x7a, 0x06, 0xbd, 0x84, 0x70, 0xef, 0x04, 0xa9, 0x59, 0x33, 0xc4, - 0xf6, 0xed, 0x19, 0x4c, 0xb1, 0x87, 0x42, 0x0b, 0x9b, 0xb3, 0x93, 0x9a, 0xb3, 0x55, 0x53, 0x13, - 0xcd, 0xa1, 0x3a, 0x3d, 0x6b, 0x6e, 0x20, 0xbc, 0xaa, 0x4c, 0x5c, 0xdf, 0x92, 0x21, 0xd9, 0xa6, - 0xa8, 0x03, 0x09, 0x2c, 0xbc, 0x1b, 0xa5, 0xd6, 0x68, 0xf3, 0x2c, 0x47, 0xe7, 0xe0, 0x60, 0x82, - 0x01, 0x39, 0x4a, 0x77, 0x0c, 0x1e, 0x49, 0x18, 0x58, 0x74, 0x89, 0xf9, 0x2b, 0xc2, 0x6b, 0x59, - 0xf1, 0xe4, 0xc9, 0xc0, 0x70, 0x3d, 0x0e, 0x66, 0xe2, 0x38, 0xd5, 0x2f, 0x32, 0x57, 0xe7, 0x91, - 0xda, 0x9d, 0xaf, 0x5e, 0xfd, 0x95, 0xd5, 0x25, 0x70, 0xd7, 0x0b, 0xe8, 0x05, 0x05, 0xf7, 0x06, - 0x03, 0x3a, 0x66, 0xb8, 0x06, 0xe8, 0x79, 0x82, 0xea, 0x21, 0x85, 0xef, 0x23, 0xf9, 0x07, 0x70, - 0x12, 0x2e, 0x31, 0x12, 0xbe, 0x85, 0xfc, 0x0e, 0x5a, 0x37, 0x5c, 0xa3, 0x60, 0xd4, 0x8f, 0x42, - 0x59, 0x36, 0xba, 0x68, 0xe8, 0xaf, 0x23, 0xbc, 0xc6, 0x5b, 0x8f, 0x3a, 0x16, 0xe7, 0x5c, 0xde, - 0x06, 0xa4, 0x61, 0xa7, 0xab, 0x9b, 0x45, 0xdd, 0x34, 0x61, 0xa8, 0x40, 0xa8, 0x2b, 0xa3, 0xf0, - 0xa9, 0x6e, 0xa3, 0x0b, 0xff, 0x41, 0x18, 0x4e, 0x13, 0xbb, 0x69, 0xb6, 0x42, 0x59, 0xbc, 0x47, - 0x6a, 0x66, 0x07, 0x2c, 0x3c, 0x2a, 0xe5, 0x81, 0xf2, 0x30, 0x5e, 0x66, 0x61, 0xbc, 0x88, 0x4a, - 0xdd, 0xe7, 0xf2, 0xb1, 0xd2, 0x52, 0x05, 0xd1, 0x4b, 0xe8, 0x3f, 0xb2, 0x84, 0x3e, 0x61, 0xd5, - 0x49, 0x4a, 0xbf, 0x0c, 0x89, 0x03, 0x1d, 0x6a, 0x20, 0x15, 0xa8, 0x7d, 0x53, 0xa1, 0xee, 0xfe, - 0x17, 0x41, 0x4b, 0x98, 0x1c, 0x7e, 0xec, 0xc8, 0x7c, 0xee, 0xfc, 0x5b, 0x8d, 0x9a, 0x1c, 0x92, - 0x04, 0xed, 0x0f, 0x09, 0xfc, 0xb5, 0x91, 0x6a, 0x37, 0xeb, 0x73, 0x95, 0x97, 0x10, 0x5c, 0x44, - 0xb2, 0x39, 0x05, 0x4d, 0x21, 0x25, 0x1d, 0xce, 0x96, 0xde, 0x1a, 0xf8, 0xb7, 0x82, 0xc1, 0x4b, - 0xef, 0x10, 0x3b, 0x4e, 0x7c, 0x99, 0x0c, 0xc9, 0x83, 0x55, 0x73, 0x77, 0x26, 0x52, 0xbb, 0xca, - 0xb8, 0xbe, 0xa4, 0x80, 0x23, 0xe5, 0xba, 0xf3, 0x6c, 0x40, 0xe2, 0x63, 0xb2, 0xbc, 0xe3, 0x69, - 0xb2, 0x98, 0xb5, 0x96, 0x6b, 0x08, 0xae, 0xa4, 0x13, 0x9e, 0x3c, 0x9a, 0xd1, 0xbe, 0x7c, 0x86, - 0xc1, 0xe5, 0x8f, 0xe3, 0x8d, 0x71, 0xee, 0x8f, 0x58, 0x36, 0x7d, 0xb6, 0xab, 0xa7, 0x12, 0xcb, - 0x51, 0x05, 0x23, 0xf1, 0xea, 0x4a, 0x1a, 0x89, 0x6b, 0x2b, 0xe1, 0x47, 0x3d, 0x82, 0x91, 0xda, - 0x59, 0xb3, 0x51, 0xb7, 0x49, 0xf4, 0x89, 0xba, 0xa3, 0x9f, 0x0f, 0xff, 0x50, 0x15, 0x69, 0x13, - 0xfa, 0x45, 0xc2, 0x4a, 0xe1, 0xa1, 0x1d, 0xc2, 0x0a, 0x8f, 0xe4, 0x49, 0x9d, 0x67, 0x9c, 0xc8, - 0xfa, 0x24, 0x34, 0x7f, 0xfa, 0x9b, 0xea, 0x83, 0xc0, 0xa4, 0x18, 0x2b, 0x20, 0x52, 0xab, 0x04, - 0x40, 0xec, 0x95, 0x93, 0x30, 0x36, 0x71, 0xed, 0xd9, 0xaa, 0xe1, 0xba, 0xa4, 0xd9, 0x76, 0xe7, - 0x2a, 0xb7, 0x7a, 0xe0, 0x66, 0x76, 0xb8, 0x68, 0x26, 0x17, 0x66, 0x8f, 0x25, 0xf9, 0xed, 0x48, - 0x7f, 0x24, 0x22, 0x0d, 0xf3, 0x3d, 0x78, 0x7d, 0x74, 0xc9, 0xa3, 0xfb, 0xb8, 0xa1, 0xac, 0x65, - 0x2f, 0xb8, 0x87, 0xdb, 0x9b, 0x0f, 0x2c, 0x16, 0x7e, 0xd6, 0x9d, 0x2f, 0x06, 0xba, 0x33, 0x5d, - 0xbc, 0x3f, 0xa4, 0xe5, 0xf0, 0xdb, 0x08, 0x16, 0x50, 0xea, 0xc4, 0x1f, 0xfa, 0x9a, 0xf8, 0x55, - 0xbc, 0x76, 0x82, 0x4c, 0x99, 0x8e, 0x4b, 0xec, 0x93, 0x4c, 0x61, 0xfc, 0xe8, 0xc0, 0x05, 0x02, - 0x27, 0x3d, 0x3a, 0xc4, 0x70, 0x9c, 0xf5, 0x4d, 0x94, 0xf4, 0x0d, 0x5a, 0xaf, 0x70, 0x9d, 0x9b, - 0x4e, 0x8f, 0xae, 0xdf, 0x45, 0x78, 0x35, 0x3b, 0x6a, 0x88, 0xf9, 0xfb, 0x24, 0x7a, 0xd5, 0x9d, - 0x12, 0x41, 0xe4, 0xa4, 0x72, 0x84, 0x4e, 0xf7, 0xb0, 0xba, 0x21, 0x3a, 0x9d, 0xe7, 0x39, 0xdd, - 0xbb, 0xed, 0x50, 0xb7, 0xc6, 0x64, 0x81, 0xc7, 0x48, 0x0c, 0x05, 0x67, 0xf0, 0x2a, 0x6f, 0x21, - 0xe1, 0x93, 0x38, 0xa0, 0x49, 0xa6, 0x4f, 0x7d, 0xb5, 0x25, 0x46, 0x8b, 0x97, 0x9c, 0x10, 0x23, - 0x01, 0x5e, 0x46, 0xf8, 0xae, 0xf0, 0x7b, 0xa1, 0xf1, 0x19, 0xd2, 0x72, 0x61, 0x5f, 0xe6, 0xf1, - 0x84, 0xe2, 0xc4, 0xd4, 0xc3, 0x79, 0xe1, 0x9c, 0xa6, 0xed, 0xd4, 0xa0, 0x01, 0xad, 0xbf, 0xb3, - 0x05, 0xf6, 0xc4, 0x4e, 0xf8, 0x9d, 0xd1, 0x0b, 0x9d, 0x87, 0x1b, 0xb4, 0xae, 0xa8, 0x5d, 0x7b, - 0x52, 0x4b, 0x2e, 0x64, 0x53, 0x29, 0x0f, 0x54, 0xf6, 0xd0, 0x9c, 0xdb, 0xe3, 0xa5, 0x6a, 0xc4, - 0x16, 0x6f, 0x37, 0x20, 0xb1, 0x85, 0x8a, 0xf2, 0xd9, 0x92, 0x04, 0xcd, 0xb0, 0xa5, 0xf3, 0x62, - 0xfa, 0xad, 0x3b, 0xe8, 0x7e, 0x3d, 0xa4, 0x22, 0xbe, 0x5f, 0x0f, 0x89, 0xd3, 0xf6, 0xeb, 0x21, - 0xa0, 0xf6, 0x97, 0x15, 0x74, 0xfa, 0x5b, 0x2b, 0xe0, 0x65, 0x25, 0xf4, 0xc2, 0x36, 0xd2, 0xa1, - 0x72, 0xaf, 0x5b, 0x05, 0x16, 0xaa, 0xdc, 0x2b, 0x53, 0xc6, 0x52, 0x94, 0xb8, 0xf6, 0x24, 0x2d, - 0x36, 0xf1, 0xd5, 0x25, 0x71, 0x39, 0x89, 0xef, 0x14, 0xde, 0x54, 0xe0, 0xba, 0x94, 0x1e, 0xd1, - 0x47, 0x73, 0xed, 0x08, 0xfe, 0xdf, 0xa9, 0x84, 0x0f, 0x7a, 0xd8, 0xc1, 0x28, 0x94, 0x86, 0x09, - 0x07, 0xa3, 0x90, 0x3c, 0x75, 0x3b, 0x1e, 0x43, 0x6a, 0x0b, 0x3d, 0x34, 0xa9, 0x2f, 0xf4, 0xc0, - 0x8f, 0x91, 0x34, 0xa9, 0x73, 0x87, 0x21, 0x6f, 0x0c, 0xf2, 0x05, 0x40, 0xce, 0x7e, 0xe5, 0x77, - 0x08, 0xde, 0x45, 0xa9, 0x59, 0x96, 0x2b, 0xc5, 0x3e, 0x72, 0x8e, 0xc1, 0x9f, 0xef, 0xa0, 0xdb, - 0xaf, 0x50, 0xa0, 0x92, 0xb7, 0x5f, 0xd1, 0x2e, 0x96, 0xba, 0xfd, 0x4a, 0x06, 0xf3, 0xb6, 0xfa, - 0x2f, 0xd6, 0xd8, 0x3e, 0x58, 0x01, 0xaf, 0x29, 0xa1, 0x6d, 0xd0, 0xed, 0xee, 0x16, 0xed, 0x6e, - 0xbf, 0x56, 0xe0, 0x57, 0xe9, 0x1c, 0xdd, 0x6e, 0x71, 0x45, 0x5a, 0xdc, 0x5b, 0x0a, 0x1e, 0x08, - 0x6d, 0x33, 0xc7, 0xa8, 0xca, 0x43, 0x9d, 0x6b, 0x82, 0x70, 0xaf, 0x64, 0xeb, 0x16, 0x05, 0x86, - 0x9f, 0x9f, 0x1f, 0x2c, 0x38, 0x8a, 0x57, 0xc2, 0x2f, 0xd8, 0x13, 0xc8, 0x37, 0x90, 0xfa, 0x68, - 0x64, 0x3f, 0x18, 0xbf, 0x4d, 0xa9, 0x9f, 0x0f, 0x5f, 0x66, 0xe4, 0xf4, 0x04, 0x7e, 0xe4, 0xf4, - 0x78, 0x5b, 0xdb, 0xba, 0x5a, 0xcd, 0x56, 0x48, 0x53, 0x27, 0x30, 0x9e, 0xe5, 0x48, 0xfe, 0x59, - 0x60, 0x5e, 0xc1, 0x6a, 0x99, 0xb8, 0x32, 0x2a, 0xef, 0xc9, 0x49, 0x4a, 0x60, 0x4b, 0xb4, 0xbf, - 0xc8, 0x10, 0x4e, 0xe2, 0x73, 0x94, 0xc3, 0x67, 0xfd, 0x57, 0xc3, 0x29, 0x14, 0xc6, 0x5f, 0x29, - 0x3f, 0xec, 0xdf, 0x14, 0xc8, 0x60, 0x4a, 0xf6, 0x72, 0xf9, 0x8a, 0x82, 0x07, 0xc6, 0x48, 0x83, - 0x2c, 0x3e, 0xa7, 0x98, 0x96, 0xa2, 0x39, 0x25, 0x46, 0x71, 0x3a, 0xbe, 0xc1, 0x72, 0xea, 0xb9, - 0x52, 0x57, 0x7c, 0x78, 0xc9, 0x73, 0xb8, 0xb4, 0x48, 0x4a, 0xbc, 0xdc, 0x78, 0x51, 0xc1, 0x7d, - 0xa1, 0x4a, 0x0b, 0xf0, 0x31, 0x2c, 0xf1, 0x4c, 0x56, 0x5d, 0x7a, 0x6e, 0x3c, 0xe7, 0x60, 0x81, - 0x71, 0x70, 0x01, 0xa9, 0x7a, 0xd4, 0x93, 0x8c, 0x82, 0xf2, 0xfc, 0x3f, 0xa9, 0x3e, 0xb6, 0x84, - 0xc5, 0xc3, 0x2f, 0xb0, 0xae, 0xf7, 0x0b, 0x25, 0xc0, 0xc4, 0x50, 0xa6, 0x67, 0x81, 0xe2, 0xd8, - 0x9b, 0x0f, 0xcc, 0x39, 0x20, 0x94, 0x82, 0x2a, 0xec, 0x48, 0x63, 0x40, 0x18, 0x59, 0xb9, 0xdf, - 0x7f, 0x77, 0x59, 0x28, 0xe6, 0x70, 0x0b, 0xe1, 0xbe, 0x50, 0xf6, 0x17, 0x8a, 0x73, 0x38, 0xe3, - 0xf5, 0xdc, 0x78, 0xee, 0xe3, 0x39, 0xea, 0x23, 0x29, 0xe5, 0xf2, 0xd1, 0x0b, 0xed, 0x68, 0xa9, - 0x3b, 0x37, 0xe9, 0xeb, 0x63, 0x05, 0xf7, 0xb3, 0x3c, 0x13, 0x47, 0xea, 0x80, 0xab, 0xd2, 0xb7, - 0x8e, 0xb2, 0x9c, 0x1e, 0xc9, 0x3f, 0x80, 0x3b, 0x7b, 0x83, 0x25, 0xf5, 0x6f, 0x91, 0x5a, 0x89, - 0x5d, 0x2f, 0xec, 0x62, 0x99, 0x08, 0xfd, 0x26, 0x14, 0x51, 0x92, 0x5c, 0xd5, 0x4a, 0x9b, 0x60, - 0x51, 0xcb, 0x86, 0x74, 0x56, 0xf8, 0x9a, 0x82, 0x37, 0x04, 0xee, 0xa5, 0x06, 0xb8, 0xdd, 0x9b, - 0x4d, 0x55, 0xa0, 0x4a, 0xf6, 0xe5, 0x44, 0x73, 0x56, 0x5f, 0x60, 0xac, 0x3e, 0x8f, 0xe0, 0x81, - 0x54, 0x56, 0x63, 0x4d, 0xce, 0x7f, 0xd1, 0x31, 0x57, 0x19, 0x87, 0xc3, 0x99, 0x8c, 0x49, 0x7a, - 0x65, 0x40, 0x0d, 0x5c, 0x56, 0x70, 0x3f, 0xcb, 0xf0, 0xee, 0x32, 0x2c, 0x5c, 0x4d, 0x23, 0xf9, - 0x07, 0xc4, 0x5e, 0x88, 0x76, 0xcf, 0x85, 0x97, 0x40, 0x9f, 0x2d, 0x2d, 0x05, 0x1d, 0x5e, 0x52, - 0x7c, 0x1f, 0xe1, 0x3e, 0xef, 0xdc, 0x78, 0x5c, 0x7c, 0x48, 0x91, 0xd6, 0x5d, 0x24, 0x40, 0x69, - 0x77, 0x91, 0xe2, 0x39, 0x1d, 0x3b, 0x28, 0x1b, 0x5b, 0x60, 0xb3, 0x70, 0xc6, 0xff, 0x9c, 0xc3, - 0xf7, 0x06, 0xde, 0xe7, 0x57, 0xe7, 0xfc, 0x9b, 0x6e, 0x26, 0x71, 0xe2, 0x4f, 0x4f, 0x03, 0x17, - 0xe1, 0x82, 0x47, 0xe6, 0xad, 0x19, 0xb8, 0xa4, 0xfc, 0xf4, 0xb6, 0xbc, 0x75, 0xf6, 0x85, 0x86, - 0xe9, 0x85, 0x43, 0x7c, 0x5b, 0x52, 0x75, 0x67, 0xdb, 0x24, 0x89, 0xd4, 0x60, 0x7e, 0x66, 0x0c, - 0x4e, 0xdd, 0xe9, 0xcc, 0x2b, 0x78, 0x4d, 0x99, 0x04, 0x3c, 0x9d, 0x8d, 0x5f, 0x5d, 0x0f, 0x08, - 0x03, 0x45, 0xb9, 0x29, 0x05, 0xa6, 0xfd, 0x94, 0xb9, 0xf8, 0x3a, 0x82, 0xa3, 0x79, 0x5d, 0xcc, - 0xbe, 0x5d, 0xf1, 0x45, 0x78, 0xa2, 0x88, 0xcb, 0x05, 0x2e, 0x5b, 0xbc, 0xaa, 0xe0, 0x75, 0xac, - 0x35, 0x07, 0x89, 0xd8, 0x9d, 0xe2, 0x61, 0xb8, 0xf3, 0xef, 0xc9, 0x81, 0xe4, 0x19, 0xf8, 0x33, - 0xc6, 0xcc, 0x4f, 0x90, 0xba, 0x74, 0xcc, 0x78, 0x05, 0xfa, 0xa4, 0xba, 0x4c, 0xe4, 0x78, 0x35, - 0xdb, 0xc0, 0xb8, 0x4c, 0xdc, 0x27, 0xd8, 0x29, 0x2c, 0xfe, 0x71, 0x90, 0x2f, 0x93, 0x7e, 0x1c, - 0x14, 0x84, 0x70, 0x26, 0xfa, 0x28, 0x11, 0xeb, 0x60, 0xad, 0xb0, 0x9b, 0x9f, 0xf2, 0xe0, 0xe7, - 0x0a, 0xdd, 0x5a, 0x8d, 0xf9, 0xdf, 0x2e, 0xf1, 0x80, 0x64, 0x5f, 0xa5, 0x8e, 0x99, 0x16, 0x53, - 0xa2, 0xbd, 0xc7, 0x02, 0xf0, 0x0e, 0x82, 0xce, 0x79, 0x2a, 0xf6, 0x95, 0x14, 0xa5, 0x8d, 0x1e, - 0x35, 0x0b, 0x46, 0x22, 0x7c, 0xd9, 0xba, 0x05, 0x8d, 0xd4, 0x29, 0x62, 0x91, 0x58, 0xdc, 0x7c, - 0xf0, 0x66, 0x0f, 0x6b, 0xad, 0x51, 0xa7, 0xcd, 0xa4, 0x15, 0x37, 0xc6, 0x4c, 0xb0, 0x87, 0xed, - 0xcc, 0x85, 0xd6, 0x7e, 0xcf, 0xde, 0xba, 0xbd, 0xad, 0xc0, 0xe3, 0xe9, 0x5c, 0x16, 0x2f, 0xf6, - 0xaf, 0xc0, 0x97, 0x0b, 0xa9, 0x2c, 0x7a, 0xb7, 0xb6, 0x0c, 0xe3, 0x4b, 0x62, 0x72, 0xe5, 0x34, - 0x4c, 0x2c, 0xbd, 0xa1, 0x70, 0x55, 0xa1, 0x57, 0xea, 0x3b, 0x0f, 0xdc, 0x8e, 0x13, 0xd7, 0x36, - 0x6b, 0x0e, 0xec, 0xcf, 0x73, 0xb3, 0x8d, 0x83, 0x45, 0x30, 0x0f, 0x14, 0x1a, 0xc3, 0xab, 0x33, - 0xe1, 0xe3, 0xba, 0x26, 0x83, 0x14, 0xbc, 0x13, 0x17, 0xf8, 0xb8, 0x2e, 0x41, 0x41, 0xc1, 0xb0, - 0x3d, 0xf2, 0x50, 0xe5, 0xc1, 0x29, 0xd3, 0x3d, 0x3b, 0x3d, 0x39, 0x5c, 0xb3, 0x9a, 0x3a, 0xf5, - 0xcb, 0x53, 0x41, 0xff, 0xd0, 0x3b, 0x1f, 0x3f, 0x4e, 0x91, 0x96, 0xde, 0x9e, 0xdc, 0x37, 0x65, - 0xe9, 0xd1, 0x8f, 0x68, 0x27, 0x3f, 0x46, 0xbf, 0x7f, 0x3c, 0xf0, 0xbf, 0x00, 0x00, 0x00, 0xff, - 0xff, 0xfe, 0xfe, 0x7b, 0xca, 0x5f, 0x3b, 0x00, 0x00, + // 2771 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5b, 0x6b, 0x8c, 0x15, 0x57, + 0x1d, 0xcf, 0x99, 0xa5, 0xa2, 0xa7, 0x3c, 0x96, 0x7f, 0x21, 0xc0, 0xf0, 0x2a, 0x43, 0x61, 0x97, + 0x0b, 0xec, 0xdd, 0xf2, 0x68, 0x65, 0xb5, 0x2d, 0x5b, 0x16, 0x6e, 0xa1, 0xbc, 0x5c, 0x68, 0xb5, + 0xb7, 0xc6, 0x9b, 0xd9, 0x7b, 0x0f, 0xcb, 0xc0, 0xdd, 0x3b, 0xd7, 0x99, 0xd9, 0x6d, 0x09, 0xd9, + 0xc6, 0x94, 0x8a, 0x58, 0x03, 0x98, 0x20, 0x34, 0x46, 0xdb, 0x0f, 0x8d, 0x4d, 0xea, 0x23, 0x7e, + 0x30, 0xd1, 0xc4, 0x44, 0x13, 0x3f, 0x48, 0xd2, 0xb4, 0x31, 0x69, 0x53, 0xab, 0x8d, 0xf6, 0x93, + 0x21, 0xa1, 0x89, 0x46, 0xad, 0x7e, 0xb0, 0x7e, 0x31, 0x66, 0xce, 0x63, 0xe6, 0xcc, 0xe3, 0xcc, + 0x63, 0x59, 0x9a, 0x26, 0xe5, 0xdb, 0xee, 0x3d, 0xff, 0x73, 0xce, 0xef, 0xf7, 0xfb, 0x3f, 0xce, + 0x39, 0x33, 0x67, 0xf0, 0xca, 0xe3, 0xed, 0xd3, 0x1e, 0xb1, 0x5a, 0xed, 0xaa, 0x4b, 0x9c, 0x29, + 0xab, 0x49, 0xaa, 0x66, 0x6b, 0xc2, 0xea, 0x0c, 0x74, 0x1d, 0xdb, 0xb3, 0xa1, 0x57, 0xb4, 0x0e, + 0xf0, 0x56, 0x7d, 0xe5, 0xb8, 0x6d, 0x8f, 0xb7, 0x49, 0xd5, 0xec, 0x5a, 0x55, 0xb3, 0xd3, 0xb1, + 0x3d, 0xd3, 0xb3, 0xec, 0x8e, 0xcb, 0xec, 0xf5, 0x70, 0x34, 0x3a, 0x4a, 0xb5, 0xeb, 0xd8, 0x27, + 0x49, 0xd3, 0xe3, 0xad, 0x03, 0xe9, 0xad, 0x8d, 0x96, 0x3d, 0x61, 0x5a, 0x9d, 0x86, 0xe9, 0x79, + 0x8e, 0x35, 0x36, 0xe9, 0x11, 0x31, 0x5a, 0x9f, 0xc2, 0x3e, 0x61, 0xb8, 0x3c, 0x66, 0xe8, 0x99, + 0xee, 0x29, 0xde, 0xb4, 0x2a, 0xd6, 0xf4, 0x94, 0xed, 0x9c, 0x3a, 0xde, 0xb6, 0x9f, 0xe2, 0xcd, + 0xfd, 0x8a, 0xe6, 0xe4, 0x1c, 0x77, 0xc7, 0x2c, 0xdb, 0xe6, 0x64, 0xa7, 0x79, 0xa2, 0xd1, 0x6d, + 0x9b, 0x5c, 0x2c, 0x5d, 0x8f, 0x59, 0x90, 0x29, 0xd2, 0x11, 0xd4, 0x57, 0xc7, 0xdb, 0x9e, 0x26, + 0xcd, 0x49, 0x5f, 0x39, 0x05, 0xd5, 0x09, 0xd3, 0x6b, 0x9e, 0x30, 0xc7, 0xda, 0xa4, 0xe1, 0x10, + 0xd7, 0x9e, 0x74, 0x9a, 0x84, 0x1b, 0xae, 0x8b, 0x19, 0x76, 0xec, 0x16, 0x69, 0xc4, 0x47, 0x5b, + 0x97, 0xa2, 0x47, 0xc2, 0x28, 0xee, 0xab, 0x29, 0xe2, 0xb8, 0x61, 0xeb, 0x8a, 0x58, 0x6b, 0xd3, + 0x9e, 0x98, 0x50, 0xa2, 0x6d, 0x11, 0xb7, 0xe9, 0x58, 0x5d, 0x7f, 0xf0, 0x06, 0xe9, 0x78, 0x96, + 0x77, 0x9a, 0x19, 0x6e, 0x7d, 0x61, 0x0a, 0xcf, 0x1b, 0xf6, 0x4d, 0x8e, 0xb2, 0xf0, 0x81, 0x8b, + 0x08, 0xe3, 0xdd, 0x0e, 0x31, 0x3d, 0x72, 0xcc, 0x74, 0x4f, 0xc1, 0xda, 0x20, 0x24, 0x06, 0x58, + 0xd8, 0xf9, 0xbf, 0xb2, 0xf6, 0x51, 0xf2, 0xd5, 0x49, 0xe2, 0x7a, 0xba, 0x91, 0x65, 0xe2, 0x76, + 0xed, 0x8e, 0x4b, 0x8c, 0x9d, 0xcf, 0xbe, 0x7d, 0xfd, 0xb2, 0xb6, 0xcd, 0x98, 0x4f, 0xc3, 0x72, + 0xea, 0x5e, 0x4a, 0xd8, 0x1d, 0x42, 0x95, 0xfa, 0x1a, 0x43, 0x8f, 0xfc, 0x56, 0xb5, 0x9d, 0xf1, + 0xea, 0x19, 0xab, 0x35, 0x60, 0x3b, 0xe3, 0xd3, 0x43, 0xa8, 0x02, 0xef, 0x22, 0x3c, 0xb7, 0x46, + 0x3c, 0x8a, 0xe6, 0xee, 0xf8, 0x54, 0x87, 0xc7, 0xfc, 0x78, 0xab, 0x11, 0x4f, 0x80, 0x59, 0x9c, + 0x06, 0xc6, 0xf8, 0x0e, 0xa2, 0xf3, 0x5f, 0x40, 0xf0, 0x40, 0x74, 0x32, 0x7f, 0x22, 0x1e, 0xb4, + 0xd3, 0xf4, 0x1f, 0x16, 0xe9, 0xec, 0xef, 0x8e, 0x39, 0x41, 0xd8, 0x5f, 0x5c, 0xf9, 0xe9, 0xfa, + 0x01, 0xd8, 0xaf, 0x46, 0x5b, 0x76, 0x34, 0xb8, 0x86, 0xf0, 0x9d, 0x07, 0x2c, 0x97, 0x72, 0xdb, + 0xd7, 0x72, 0x61, 0x30, 0x0e, 0xfe, 0x90, 0x39, 0x41, 0x5a, 0x7b, 0xa8, 0xbf, 0xf6, 0xb5, 0x7c, + 0xbf, 0x1d, 0xb7, 0x88, 0xe3, 0xf7, 0x10, 0x74, 0x37, 0x16, 0xee, 0x61, 0x3c, 0x41, 0x25, 0x38, + 0x0a, 0xeb, 0x64, 0x02, 0x0d, 0xab, 0xe5, 0x56, 0xcf, 0x84, 0x98, 0x39, 0xe0, 0xfa, 0x66, 0xa8, + 0xa4, 0xf0, 0x64, 0x24, 0x13, 0xd6, 0xf0, 0xaa, 0x86, 0x3f, 0x23, 0x78, 0xb8, 0xb0, 0x2e, 0x8e, + 0x69, 0x94, 0x27, 0x88, 0x0c, 0x7c, 0x59, 0x9a, 0x9f, 0x28, 0xce, 0x3f, 0x33, 0x5f, 0xfd, 0x1e, + 0xc1, 0x60, 0x59, 0x5f, 0xd5, 0x1f, 0x8a, 0xfb, 0xb7, 0xa4, 0x7b, 0xea, 0xfd, 0xb0, 0xa1, 0xd8, + 0xa4, 0xf5, 0x1d, 0xb0, 0x6d, 0x06, 0x53, 0xc1, 0xcb, 0x08, 0x2f, 0x60, 0xb9, 0xf1, 0x45, 0x5e, + 0xc8, 0x60, 0x7d, 0x5c, 0x0a, 0xd1, 0x12, 0x4d, 0xb3, 0x0d, 0x79, 0x66, 0x3c, 0xd5, 0x86, 0xa9, + 0x7c, 0x9f, 0x33, 0x16, 0x09, 0x78, 0xa2, 0x62, 0xd2, 0x74, 0x5b, 0x67, 0xac, 0x4e, 0xfc, 0x9e, + 0x48, 0xb9, 0xf7, 0x11, 0xbe, 0xb3, 0x46, 0xbc, 0x00, 0x61, 0x7e, 0xda, 0x2d, 0x53, 0x81, 0x33, + 0xbe, 0xcf, 0xdc, 0x79, 0x05, 0xc1, 0x70, 0x72, 0xe2, 0xb2, 0xe9, 0x77, 0x04, 0x0e, 0x65, 0xa3, + 0x2f, 0x9d, 0x82, 0x6f, 0x21, 0xbc, 0xd0, 0x0f, 0x3b, 0x81, 0xf7, 0x96, 0xa7, 0xa1, 0x49, 0xe5, + 0x78, 0x12, 0xfa, 0xe2, 0x44, 0x54, 0xa9, 0x38, 0x08, 0x03, 0x0a, 0xce, 0xaa, 0x74, 0xfc, 0x8d, + 0x86, 0xe7, 0xcb, 0x9c, 0x0a, 0xa6, 0xe4, 0x4a, 0x95, 0x0f, 0x29, 0xee, 0xbf, 0x32, 0x3f, 0x5e, + 0x47, 0xb0, 0x7d, 0x26, 0x7e, 0xac, 0xef, 0x4e, 0xf3, 0x7f, 0xd9, 0xf4, 0x94, 0xca, 0x52, 0xfe, + 0xe4, 0xf5, 0x9d, 0x70, 0xff, 0x0c, 0xa7, 0x84, 0x9f, 0x22, 0xdc, 0xcb, 0xf2, 0xea, 0x00, 0xdd, + 0x45, 0x1c, 0x69, 0x9b, 0x1d, 0xe8, 0x8b, 0x0b, 0x14, 0xb6, 0x45, 0x53, 0xb5, 0x3f, 0xdf, 0x90, + 0x27, 0x6b, 0x8d, 0x8a, 0x3a, 0x6c, 0x2c, 0x16, 0x40, 0xa5, 0x4d, 0x0b, 0xcd, 0xd7, 0x0d, 0xc6, + 0xda, 0xb4, 0xa6, 0x44, 0xca, 0xfe, 0x0b, 0xe1, 0xf9, 0x35, 0xe2, 0x49, 0x68, 0xf3, 0x93, 0x56, + 0x57, 0xc3, 0x34, 0x5e, 0x66, 0xee, 0xfe, 0x1e, 0x82, 0x91, 0xd4, 0xf9, 0xcb, 0x66, 0xee, 0x51, + 0xf8, 0x42, 0x2e, 0x8f, 0xd2, 0xc9, 0xfb, 0x6f, 0x84, 0xef, 0xaa, 0x11, 0x6f, 0xb8, 0xe9, 0x59, + 0x53, 0x99, 0x8e, 0x8a, 0x5b, 0x14, 0x51, 0xe0, 0x2a, 0x53, 0xe0, 0x12, 0x82, 0x07, 0x05, 0x72, + 0x93, 0x0e, 0xd3, 0x28, 0x29, 0x44, 0xfd, 0x20, 0x3c, 0x9a, 0x35, 0x42, 0x49, 0x09, 0xfc, 0x0d, + 0xd1, 0x12, 0x3f, 0x25, 0xe3, 0xa4, 0x5c, 0xd8, 0x94, 0xc7, 0x5b, 0x4e, 0xf7, 0xd5, 0x6a, 0xee, + 0x34, 0xe1, 0x1d, 0x4a, 0xbf, 0x1d, 0x56, 0x9f, 0x54, 0xf6, 0xc9, 0x7a, 0x35, 0x04, 0x9f, 0xcd, + 0x65, 0xab, 0xaa, 0x5c, 0xef, 0x21, 0xbc, 0xc8, 0x9f, 0x3c, 0x84, 0x72, 0xcb, 0xeb, 0xf1, 0x49, + 0x4a, 0xb3, 0x15, 0x16, 0x16, 0x09, 0xad, 0xaa, 0x24, 0xdf, 0x17, 0xd6, 0xc0, 0xb8, 0x75, 0x26, + 0xbd, 0x37, 0x35, 0xb6, 0xd8, 0xc8, 0x3e, 0x2b, 0x54, 0x9a, 0xf3, 0x7c, 0xf5, 0x1f, 0x16, 0xab, + 0xff, 0x44, 0x61, 0xc5, 0x2b, 0x1b, 0xa4, 0x7b, 0x15, 0x89, 0x5e, 0xb6, 0x44, 0x57, 0x61, 0x4b, + 0x29, 0x08, 0xf5, 0xcf, 0xc3, 0xd0, 0xcc, 0x27, 0x86, 0x0b, 0x1a, 0xee, 0x7d, 0xac, 0xdb, 0x2a, + 0x5c, 0xa8, 0x99, 0x6d, 0x81, 0x42, 0x2d, 0x0c, 0x79, 0xa1, 0x7e, 0x85, 0x29, 0xfc, 0x12, 0xd2, + 0x67, 0xa5, 0x1e, 0xfa, 0xa5, 0xfd, 0xa8, 0x7e, 0x0b, 0x4a, 0xe2, 0x0f, 0x10, 0x5e, 0xc8, 0xd6, + 0x98, 0x3d, 0xe2, 0x34, 0x09, 0x89, 0x9d, 0x63, 0xd0, 0x14, 0x5d, 0xb6, 0xfa, 0x72, 0xed, 0xb8, + 0x18, 0xbb, 0xa8, 0x16, 0x43, 0x06, 0x08, 0xfc, 0xc1, 0xc9, 0x95, 0xae, 0x59, 0x6b, 0xf5, 0x95, + 0xc9, 0x86, 0x30, 0x33, 0xfc, 0xe5, 0xea, 0xd7, 0x08, 0x2f, 0x1a, 0x25, 0x8c, 0x76, 0x08, 0xb4, + 0x5f, 0x09, 0x40, 0xd8, 0x96, 0x86, 0xfa, 0x18, 0x85, 0x7a, 0xd8, 0x58, 0x91, 0x82, 0xc8, 0xe1, + 0x83, 0xfa, 0x98, 0xb7, 0x18, 0xfd, 0x2a, 0xcc, 0xc2, 0x15, 0x92, 0x39, 0xfc, 0x12, 0xe1, 0xde, + 0x51, 0xd2, 0xb4, 0xa7, 0x88, 0x13, 0xc2, 0xef, 0xcb, 0x80, 0x4f, 0x4d, 0x4b, 0xa3, 0x3f, 0x4a, + 0xd1, 0x1f, 0x0c, 0x8f, 0xc8, 0x11, 0xf4, 0x74, 0x4c, 0x1f, 0xfc, 0x66, 0xa3, 0x2f, 0x1f, 0xbc, + 0xb0, 0xf6, 0x8b, 0xec, 0xbc, 0x1a, 0xf1, 0x42, 0xdc, 0x9b, 0x54, 0x1b, 0xbf, 0xc0, 0x44, 0xda, + 0x34, 0x2c, 0x57, 0x62, 0x37, 0xce, 0xb2, 0x1c, 0x99, 0x86, 0x1d, 0x29, 0x68, 0x0a, 0x94, 0x8e, + 0x11, 0x78, 0x38, 0x8f, 0x46, 0x81, 0xe5, 0xf1, 0x1f, 0x08, 0x2f, 0x64, 0xc9, 0x5b, 0x24, 0x03, + 0xa2, 0xf5, 0xa0, 0x2f, 0xd7, 0x8e, 0x3b, 0xe6, 0x79, 0x46, 0xf5, 0x2c, 0xd2, 0x67, 0xc6, 0xd5, + 0xf7, 0x5a, 0x4d, 0x9f, 0x05, 0xba, 0xbe, 0x43, 0xcf, 0x69, 0xb8, 0x57, 0x76, 0xe8, 0x88, 0xe9, + 0x99, 0x50, 0x2d, 0xe2, 0x54, 0xdf, 0x52, 0x70, 0x1f, 0x2c, 0xde, 0x81, 0x8b, 0x70, 0x91, 0x89, + 0xf0, 0x0d, 0x14, 0x56, 0xf0, 0x96, 0xe9, 0x99, 0x25, 0xbd, 0xbe, 0x0f, 0x6a, 0xaa, 0xde, 0x65, + 0x5d, 0x7f, 0x0d, 0xe1, 0x05, 0xfe, 0x7a, 0x18, 0x20, 0x2e, 0xb8, 0xbc, 0xae, 0x52, 0xba, 0x9d, + 0xae, 0xae, 0x36, 0xa5, 0x69, 0xc1, 0xa6, 0x12, 0xae, 0x96, 0xb7, 0x41, 0x65, 0x19, 0xc1, 0x87, + 0x08, 0xc3, 0x31, 0xe2, 0x4c, 0x58, 0x9d, 0x48, 0x14, 0x6f, 0x54, 0xc2, 0x0c, 0x8c, 0x05, 0xa3, + 0x4a, 0x11, 0xd3, 0x78, 0x2c, 0x57, 0x6e, 0x22, 0x96, 0x2b, 0xb3, 0x14, 0xcb, 0x7f, 0x61, 0xb1, + 0x7c, 0xc8, 0x6e, 0x91, 0x8c, 0xc2, 0x1a, 0x69, 0x96, 0x8a, 0xd3, 0xaa, 0x4c, 0x43, 0xe3, 0xeb, + 0x1a, 0x65, 0xfa, 0x3f, 0x04, 0x1d, 0x81, 0x36, 0xfa, 0x74, 0x96, 0xd1, 0x0d, 0xfe, 0x6d, 0xc4, + 0x21, 0x47, 0x5a, 0x64, 0xfc, 0x91, 0x86, 0x70, 0x59, 0xa6, 0xa3, 0x5b, 0xad, 0xe9, 0xfa, 0xb7, + 0x10, 0x9c, 0x47, 0xaa, 0x39, 0x85, 0x4c, 0x91, 0x41, 0x02, 0xcd, 0x66, 0x1f, 0x0d, 0xfc, 0x57, + 0xc3, 0xe0, 0x47, 0x76, 0x44, 0x1d, 0x37, 0xb9, 0xfc, 0x46, 0xda, 0xe5, 0x84, 0x59, 0x9b, 0x6b, + 0x69, 0x5c, 0x61, 0x5a, 0x5f, 0xd4, 0xc0, 0x55, 0x6a, 0x1d, 0x3c, 0xfa, 0x50, 0x70, 0x4c, 0x6f, + 0x0f, 0x98, 0xa6, 0x37, 0xb3, 0xaa, 0x72, 0x15, 0xc1, 0xe5, 0x6c, 0xc1, 0xd3, 0x7b, 0x33, 0xd9, + 0x6f, 0x1d, 0x30, 0xb8, 0xf4, 0x69, 0xbc, 0x3c, 0xa9, 0xfd, 0x5e, 0xdb, 0xa1, 0x0f, 0xb8, 0xab, + 0x99, 0xc2, 0x72, 0xab, 0x92, 0x9e, 0x78, 0x71, 0x2e, 0xf5, 0xc4, 0xd5, 0xb9, 0xf0, 0xc3, 0x1e, + 0xa1, 0x48, 0xf3, 0x84, 0xd5, 0x6e, 0x39, 0x24, 0xfe, 0xe2, 0xc1, 0xad, 0x9e, 0x89, 0xfe, 0xd0, + 0x10, 0x61, 0x13, 0xf9, 0x45, 0xa1, 0x4a, 0xe9, 0xae, 0x81, 0x60, 0xa5, 0x7b, 0xf2, 0xa0, 0x2e, + 0xd2, 0x4f, 0x44, 0x7d, 0x9a, 0x35, 0x7f, 0x04, 0x9e, 0xc9, 0x41, 0xd8, 0x64, 0x80, 0x15, 0x26, + 0x4a, 0x54, 0xc2, 0x40, 0x6c, 0xd3, 0xd3, 0x6c, 0x1c, 0xe2, 0x39, 0xa7, 0x1b, 0xa6, 0xe7, 0x91, + 0x89, 0xae, 0x37, 0x5d, 0xbf, 0xd1, 0x03, 0xd7, 0xf3, 0xdd, 0x45, 0x23, 0xb9, 0xb4, 0x7a, 0x2c, + 0xc8, 0x6f, 0x7b, 0xfa, 0x63, 0xe1, 0x69, 0x38, 0xdb, 0x83, 0x17, 0xc7, 0x97, 0x3c, 0xba, 0x85, + 0xdb, 0x94, 0xb7, 0xec, 0xc9, 0xdb, 0xb7, 0xcd, 0xc5, 0x8c, 0xf9, 0x9a, 0x7f, 0x89, 0x55, 0xe7, + 0xf3, 0x52, 0x75, 0xa6, 0x9b, 0xaf, 0x8f, 0x68, 0x39, 0xfc, 0x36, 0x82, 0x0b, 0x28, 0x73, 0xe2, + 0x8f, 0x7c, 0x4d, 0x7c, 0x15, 0xe1, 0x85, 0xa3, 0x64, 0xdc, 0x72, 0x3d, 0xe2, 0x1c, 0x61, 0x23, + 0x26, 0x8f, 0x0d, 0xbc, 0x41, 0xd8, 0x29, 0x8f, 0x0d, 0x09, 0x3b, 0x2e, 0xfb, 0x08, 0x55, 0xfd, + 0x41, 0xa3, 0x57, 0x70, 0xe7, 0xd8, 0xe9, 0xb1, 0xb9, 0xcf, 0x30, 0xe2, 0x3f, 0x33, 0x19, 0xc4, + 0x3b, 0x7a, 0x71, 0x78, 0x7e, 0x01, 0xe1, 0xf9, 0xec, 0x3c, 0x22, 0x80, 0x2e, 0x55, 0x00, 0xd0, + 0xd7, 0x2b, 0x1a, 0x62, 0xc7, 0x99, 0xbd, 0x14, 0xd7, 0x2e, 0x7d, 0x49, 0x02, 0xc0, 0x19, 0xab, + 0x45, 0x37, 0x78, 0xf7, 0xe8, 0x6b, 0xd2, 0xc1, 0x09, 0x9f, 0x50, 0x64, 0xcf, 0x21, 0x3c, 0xcf, + 0x5f, 0x73, 0xf8, 0x2c, 0x2e, 0x18, 0x8a, 0xf9, 0x33, 0x5f, 0x05, 0x8a, 0xde, 0xc6, 0x7d, 0x14, + 0xd6, 0x20, 0x24, 0xe4, 0xaa, 0xaf, 0x04, 0x5d, 0x0d, 0x07, 0xde, 0x41, 0xf8, 0xae, 0xe8, 0x4b, + 0xb6, 0x3d, 0x53, 0xa4, 0xe3, 0xc1, 0x96, 0xdc, 0x23, 0x0e, 0xb5, 0x13, 0xc0, 0x06, 0x8a, 0x9a, + 0x73, 0x15, 0x1b, 0x14, 0xee, 0x13, 0xc6, 0xb2, 0x60, 0x2b, 0xec, 0x37, 0xbb, 0xd1, 0x17, 0x70, + 0x43, 0xc6, 0x8e, 0x58, 0x33, 0xc5, 0xcd, 0xae, 0x22, 0x24, 0xa3, 0x5d, 0xee, 0x0b, 0xbf, 0x0d, + 0x1e, 0xee, 0xd0, 0xe4, 0xa6, 0x9c, 0x36, 0x66, 0xe6, 0x7d, 0x84, 0x4f, 0xa5, 0x88, 0x29, 0xe7, + 0x52, 0xa7, 0x5c, 0x8e, 0x85, 0x2f, 0x26, 0x38, 0x58, 0x3f, 0x5f, 0x28, 0x8f, 0x9d, 0xc6, 0x76, + 0x35, 0x8f, 0xd4, 0xc4, 0x15, 0x5d, 0xe1, 0x4f, 0x01, 0x0d, 0x7f, 0x37, 0xa3, 0xa0, 0x41, 0x9b, + 0x8a, 0xd1, 0x48, 0x33, 0xe5, 0x34, 0xba, 0x94, 0xc6, 0xc9, 0x04, 0x8d, 0xe0, 0xfa, 0xc1, 0x61, + 0x63, 0xbf, 0x9a, 0x46, 0xd7, 0x74, 0x48, 0xc7, 0x6b, 0x14, 0x59, 0x4d, 0xc5, 0x80, 0xf0, 0xc6, + 0x1d, 0xf4, 0x00, 0x13, 0xc1, 0x94, 0x3c, 0xc0, 0x44, 0x9a, 0xb3, 0x0e, 0x30, 0x11, 0x43, 0xe3, + 0xef, 0x73, 0x28, 0x9f, 0x1b, 0x73, 0xe0, 0xbb, 0x5a, 0xe4, 0x35, 0x7e, 0xac, 0x64, 0x17, 0x5e, + 0xc8, 0x4b, 0xac, 0xdc, 0x85, 0x97, 0xea, 0x9c, 0xb5, 0x39, 0x75, 0x31, 0x4e, 0x5b, 0x7d, 0x93, + 0xcb, 0x6d, 0xea, 0xfa, 0x9a, 0xdc, 0x3a, 0xbd, 0xa6, 0xc1, 0x35, 0xa5, 0x3c, 0x62, 0x61, 0x29, + 0xb4, 0x45, 0xfa, 0xa4, 0x4b, 0x09, 0x1f, 0xf4, 0xb0, 0x93, 0x62, 0x24, 0x0c, 0x53, 0x4e, 0x8a, + 0x91, 0xf6, 0xcc, 0xf3, 0x49, 0xc2, 0xd2, 0xb8, 0xd0, 0x43, 0x83, 0xfa, 0x5c, 0x0f, 0xfc, 0x08, + 0x29, 0x83, 0xba, 0xb0, 0x1b, 0x8a, 0xfa, 0xa0, 0x98, 0x03, 0xd4, 0xea, 0xd7, 0xff, 0x80, 0xe0, + 0x6d, 0x94, 0x19, 0x65, 0x85, 0x42, 0xec, 0x63, 0x47, 0x0c, 0xfe, 0x76, 0x07, 0xdd, 0x8f, 0x46, + 0x1c, 0x95, 0xbe, 0x1f, 0x8d, 0x57, 0xb1, 0xcc, 0xfd, 0x68, 0xba, 0x31, 0xaf, 0xd3, 0x1f, 0xb2, + 0xc2, 0xf6, 0xc1, 0x1c, 0x78, 0x49, 0x8b, 0xec, 0x0b, 0x6f, 0x57, 0xb7, 0x78, 0x75, 0xfb, 0x9d, + 0x06, 0xaf, 0x67, 0x6b, 0x74, 0xbb, 0xc4, 0x95, 0x29, 0x71, 0x6f, 0x68, 0x78, 0x55, 0x64, 0x37, + 0x3d, 0x42, 0x87, 0x1c, 0x0e, 0xae, 0x97, 0xc2, 0x76, 0xc5, 0x06, 0x35, 0x6e, 0x18, 0x7d, 0x97, + 0xb0, 0xa3, 0x64, 0x2f, 0x9e, 0x09, 0xbf, 0x62, 0x4f, 0x63, 0x7f, 0x8e, 0xf4, 0xfd, 0xb1, 0x1d, + 0x6e, 0xf2, 0x16, 0x6e, 0xf5, 0x4c, 0xf4, 0x12, 0x2c, 0x97, 0x47, 0xfa, 0x91, 0xcb, 0xe3, 0xef, + 0x74, 0x5a, 0x7a, 0x23, 0x7f, 0x40, 0x1a, 0x3a, 0x52, 0x7f, 0x16, 0x23, 0xc5, 0x67, 0x81, 0xb3, + 0x1a, 0xd6, 0x6b, 0xc4, 0x53, 0x49, 0x79, 0x6f, 0x41, 0x51, 0xa4, 0x2d, 0xd1, 0xd6, 0x32, 0x5d, + 0xb8, 0x88, 0xcf, 0x50, 0x0d, 0x9f, 0x0e, 0x5f, 0xd3, 0x67, 0x48, 0x98, 0x7c, 0xbd, 0xbf, 0x2b, + 0xbc, 0xf1, 0x91, 0xa3, 0x94, 0xea, 0x45, 0xff, 0x65, 0x0d, 0xaf, 0x1a, 0x21, 0x6d, 0x72, 0xf3, + 0x31, 0xc5, 0x46, 0x29, 0x1b, 0x53, 0xa2, 0x17, 0x97, 0xe3, 0x39, 0x16, 0x53, 0xcf, 0x54, 0x66, + 0xa4, 0x87, 0x1f, 0x3c, 0xbb, 0x2b, 0x37, 0x29, 0x89, 0x1f, 0x1b, 0xcf, 0x6b, 0x78, 0x69, 0x24, + 0xd3, 0x24, 0x3d, 0x06, 0x14, 0xcc, 0x54, 0xd9, 0x55, 0x2d, 0x6c, 0xcf, 0x35, 0xb8, 0xc0, 0x34, + 0x38, 0x87, 0xf4, 0x6a, 0x9c, 0x49, 0x4e, 0x42, 0xf9, 0xfc, 0x8f, 0xe8, 0x8f, 0xce, 0x62, 0xf2, + 0xf0, 0x6b, 0xcd, 0x8b, 0xc3, 0x44, 0x91, 0x94, 0xd8, 0x94, 0xcb, 0x4c, 0x4a, 0x8e, 0xcd, 0xc5, + 0x8c, 0xb9, 0x06, 0x84, 0x4a, 0xd0, 0x80, 0x7b, 0xb2, 0x14, 0x10, 0x20, 0xeb, 0xf7, 0x87, 0xef, + 0x71, 0x4b, 0xf9, 0x1c, 0x6e, 0x20, 0xbc, 0x34, 0x12, 0xfd, 0xa5, 0xfc, 0x1c, 0x8d, 0xf8, 0x6a, + 0x61, 0x7b, 0xce, 0xf1, 0x14, 0xe5, 0x48, 0x2a, 0x85, 0x38, 0xd2, 0x03, 0x79, 0x65, 0x66, 0x34, + 0xe9, 0xab, 0x74, 0x0d, 0x2f, 0x63, 0x71, 0x26, 0x1e, 0x0d, 0x48, 0x54, 0x95, 0x6f, 0x60, 0x55, + 0x31, 0x3d, 0x58, 0xbc, 0x03, 0x27, 0xfb, 0x1e, 0x0b, 0xea, 0x77, 0x90, 0x5e, 0x4f, 0x5c, 0x27, + 0x9d, 0xc1, 0x32, 0x11, 0xf9, 0x4d, 0x0c, 0x44, 0x45, 0xf2, 0x74, 0x3b, 0x6b, 0x82, 0x9b, 0x5a, + 0x36, 0x94, 0xb3, 0xc2, 0xd7, 0x34, 0xbc, 0x44, 0xba, 0x87, 0x2c, 0x69, 0xbb, 0x39, 0x5f, 0x2a, + 0x29, 0x4b, 0xb6, 0x14, 0xb4, 0xe6, 0xaa, 0x7e, 0x93, 0xa9, 0xfa, 0x2c, 0x82, 0x9d, 0x99, 0xaa, + 0x26, 0x8a, 0x5c, 0xf8, 0xe6, 0x67, 0xba, 0xbe, 0x07, 0x76, 0xe7, 0x2a, 0xa6, 0xa8, 0x95, 0xd2, + 0x30, 0x70, 0x49, 0xc3, 0xcb, 0x58, 0x84, 0xcf, 0x2c, 0xc2, 0xa2, 0xd9, 0x34, 0x58, 0xbc, 0x83, + 0x78, 0x50, 0xcc, 0xb4, 0x38, 0x8f, 0x2a, 0x33, 0xd7, 0xc2, 0x0f, 0xa0, 0x47, 0x2a, 0xb3, 0x21, + 0x87, 0x1f, 0x14, 0xaf, 0x23, 0xbc, 0xd4, 0x3f, 0x37, 0x1e, 0x14, 0x1f, 0xe0, 0x64, 0x55, 0x17, + 0x85, 0xa1, 0xb2, 0xba, 0x28, 0xed, 0xb9, 0x1c, 0x87, 0xa8, 0x1a, 0x8f, 0x40, 0x70, 0xc1, 0x29, + 0xfc, 0x0c, 0x28, 0x64, 0x23, 0x7f, 0x45, 0x90, 0xd6, 0x2e, 0x3d, 0xa9, 0x7c, 0x9f, 0x5f, 0x78, + 0x0c, 0xef, 0x27, 0x5a, 0xc4, 0x4d, 0x3e, 0x77, 0x96, 0xae, 0x2f, 0xca, 0x87, 0xeb, 0x35, 0x39, + 0x76, 0x69, 0x91, 0xec, 0x6f, 0x8e, 0x5b, 0xec, 0x1b, 0x20, 0xcb, 0x77, 0x9c, 0xf8, 0x7a, 0xa9, + 0xe1, 0x9d, 0xee, 0x92, 0x34, 0xf9, 0xe5, 0x48, 0xce, 0xe9, 0x9c, 0xb9, 0x27, 0x3a, 0xab, 0xe1, + 0x05, 0x35, 0x22, 0x31, 0x3d, 0x9d, 0xfc, 0xf2, 0x41, 0x6a, 0x94, 0xd2, 0x77, 0x45, 0x86, 0x99, + 0xf1, 0x13, 0x46, 0xf1, 0x15, 0x04, 0xfb, 0x8a, 0x52, 0xcc, 0xbf, 0x93, 0xf2, 0x25, 0x78, 0xbc, + 0x0c, 0xe5, 0x12, 0x57, 0x54, 0x5e, 0xd4, 0xf0, 0x22, 0x56, 0xc4, 0x65, 0x21, 0xfa, 0x33, 0x18, + 0x46, 0xd7, 0x88, 0x8d, 0x05, 0x2c, 0x79, 0xac, 0xfe, 0x8c, 0x29, 0xf3, 0x63, 0xa4, 0xcf, 0x9e, + 0x32, 0x7e, 0x2a, 0x3f, 0xa9, 0xdf, 0x22, 0x71, 0xfc, 0xec, 0x6e, 0x63, 0x5c, 0x23, 0xde, 0xe3, + 0xec, 0xbc, 0x96, 0xfc, 0xfa, 0x2c, 0x6c, 0x53, 0x7e, 0x7d, 0x26, 0x9b, 0x70, 0x25, 0x96, 0x52, + 0x21, 0x16, 0xc1, 0x42, 0x81, 0x9b, 0x9f, 0x07, 0xe1, 0x17, 0x1a, 0xdd, 0x84, 0x8d, 0x84, 0x5f, + 0xc7, 0x71, 0x87, 0xe4, 0x5f, 0x9e, 0x4f, 0x40, 0x4b, 0x0c, 0x62, 0xbc, 0xcb, 0x1c, 0xf0, 0x16, + 0x82, 0xe0, 0xe4, 0x95, 0xf8, 0x0e, 0x8f, 0xca, 0x46, 0x0f, 0xa5, 0x25, 0x3d, 0x11, 0xbd, 0x5e, + 0xdf, 0x81, 0x76, 0xe6, 0x14, 0x09, 0x4f, 0xdc, 0xdc, 0x7c, 0xf0, 0x5a, 0x0f, 0x2b, 0xc2, 0x71, + 0xd2, 0x56, 0xda, 0xda, 0x9c, 0x50, 0x46, 0xae, 0x61, 0xeb, 0x0b, 0x59, 0x1b, 0x7f, 0x64, 0x2f, + 0x2c, 0xdf, 0xd4, 0xe0, 0x70, 0xb6, 0x96, 0xe5, 0x93, 0xfd, 0x2b, 0xf0, 0xe5, 0x52, 0x43, 0x96, + 0xbd, 0x11, 0x5d, 0x83, 0x3d, 0xb3, 0x02, 0xb9, 0x7e, 0x0c, 0x46, 0x67, 0x1f, 0x28, 0x5c, 0xd1, + 0xe8, 0x47, 0x14, 0xc1, 0xa3, 0xb9, 0x83, 0xc4, 0x73, 0xac, 0xa6, 0x0b, 0x5b, 0x8b, 0xdc, 0x07, + 0xe4, 0xc6, 0xc2, 0x99, 0xdb, 0x4a, 0xf5, 0xe1, 0xd9, 0x99, 0xf2, 0x71, 0xe6, 0x04, 0x33, 0x29, + 0x79, 0x93, 0x50, 0xfa, 0x38, 0x33, 0x65, 0x80, 0x92, 0x6e, 0x7b, 0xf8, 0xa1, 0xfa, 0x03, 0xe3, + 0x96, 0x77, 0x62, 0x72, 0x6c, 0xa0, 0x69, 0x4f, 0x54, 0x29, 0x2f, 0x7f, 0x08, 0xfa, 0x47, 0x35, + 0xf8, 0xbc, 0x76, 0x9c, 0x74, 0xaa, 0xdd, 0xb1, 0x2d, 0xe3, 0x76, 0x35, 0xfe, 0x99, 0xf6, 0xd8, + 0xa7, 0xe8, 0x17, 0xb6, 0xdb, 0xfe, 0x1f, 0x00, 0x00, 0xff, 0xff, 0x62, 0x8b, 0x12, 0xc0, 0xc1, + 0x3d, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/flyteidl/gen/pb-go/flyteidl/service/admin.pb.gw.go b/flyteidl/gen/pb-go/flyteidl/service/admin.pb.gw.go index fcdbb30992..3bffe4954b 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/admin.pb.gw.go +++ b/flyteidl/gen/pb-go/flyteidl/service/admin.pb.gw.go @@ -47,6 +47,41 @@ func request_AdminService_CreateTask_0(ctx context.Context, marshaler runtime.Ma } +func request_AdminService_CreateTask_1(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.TaskCreateRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["id.org"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.org") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.org", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.org", err) + } + + msg, err := client.CreateTask(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + var ( filter_AdminService_GetTask_0 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0, "project": 1, "domain": 2, "name": 3, "version": 4}, Base: []int{1, 1, 1, 2, 3, 4, 0, 0, 0, 0}, Check: []int{0, 1, 2, 2, 2, 2, 3, 4, 5, 6}} ) @@ -566,6 +601,41 @@ func request_AdminService_CreateWorkflow_0(ctx context.Context, marshaler runtim } +func request_AdminService_CreateWorkflow_1(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.WorkflowCreateRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["id.org"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.org") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.org", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.org", err) + } + + msg, err := client.CreateWorkflow(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + var ( filter_AdminService_GetWorkflow_0 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0, "project": 1, "domain": 2, "name": 3, "version": 4}, Base: []int{1, 1, 1, 2, 3, 4, 0, 0, 0, 0}, Check: []int{0, 1, 2, 2, 2, 2, 3, 4, 5, 6}} ) @@ -1085,6 +1155,41 @@ func request_AdminService_CreateLaunchPlan_0(ctx context.Context, marshaler runt } +func request_AdminService_CreateLaunchPlan_1(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.LaunchPlanCreateRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["id.org"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.org") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.org", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.org", err) + } + + msg, err := client.CreateLaunchPlan(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + var ( filter_AdminService_GetLaunchPlan_0 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0, "project": 1, "domain": 2, "name": 3, "version": 4}, Base: []int{1, 1, 1, 2, 3, 4, 0, 0, 0, 0}, Check: []int{0, 1, 2, 2, 2, 2, 3, 4, 5, 6}} ) @@ -1418,6 +1523,66 @@ func request_AdminService_ListActiveLaunchPlans_0(ctx context.Context, marshaler } +var ( + filter_AdminService_ListActiveLaunchPlans_1 = &utilities.DoubleArray{Encoding: map[string]int{"org": 0, "project": 1, "domain": 2}, Base: []int{1, 1, 2, 3, 0, 0, 0}, Check: []int{0, 1, 1, 1, 2, 3, 4}} +) + +func request_AdminService_ListActiveLaunchPlans_1(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.ActiveLaunchPlanListRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["org"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "org") + } + + protoReq.Org, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "org", err) + } + + val, ok = pathParams["project"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "project") + } + + protoReq.Project, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "project", err) + } + + val, ok = pathParams["domain"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "domain") + } + + protoReq.Domain, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "domain", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_ListActiveLaunchPlans_1); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.ListActiveLaunchPlans(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + var ( filter_AdminService_ListLaunchPlanIds_0 = &utilities.DoubleArray{Encoding: map[string]int{"project": 0, "domain": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}} ) @@ -1934,6 +2099,41 @@ func request_AdminService_CreateExecution_0(ctx context.Context, marshaler runti } +func request_AdminService_CreateExecution_1(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.ExecutionCreateRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["org"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "org") + } + + protoReq.Org, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "org", err) + } + + msg, err := client.CreateExecution(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + func request_AdminService_RelaunchExecution_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq admin.ExecutionRelaunchRequest var metadata runtime.ServerMetadata @@ -1951,6 +2151,41 @@ func request_AdminService_RelaunchExecution_0(ctx context.Context, marshaler run } +func request_AdminService_RelaunchExecution_1(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.ExecutionRelaunchRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["id.org"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.org") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.org", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.org", err) + } + + msg, err := client.RelaunchExecution(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + func request_AdminService_RecoverExecution_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq admin.ExecutionRecoverRequest var metadata runtime.ServerMetadata @@ -1968,6 +2203,41 @@ func request_AdminService_RecoverExecution_0(ctx context.Context, marshaler runt } +func request_AdminService_RecoverExecution_1(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.ExecutionRecoverRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["id.org"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.org") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.org", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.org", err) + } + + msg, err := client.RecoverExecution(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + var ( filter_AdminService_GetExecution_0 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0, "project": 1, "domain": 2, "name": 3}, Base: []int{1, 1, 1, 2, 3, 0, 0, 0}, Check: []int{0, 1, 2, 2, 2, 3, 4, 5}} ) @@ -3306,6 +3576,41 @@ func request_AdminService_RegisterProject_0(ctx context.Context, marshaler runti } +func request_AdminService_RegisterProject_1(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.ProjectRegisterRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["project.org"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "project.org") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "project.org", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "project.org", err) + } + + msg, err := client.RegisterProject(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + func request_AdminService_UpdateProject_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq admin.Project var metadata runtime.ServerMetadata @@ -3407,6 +3712,44 @@ func request_AdminService_ListProjects_0(ctx context.Context, marshaler runtime. } +var ( + filter_AdminService_ListProjects_1 = &utilities.DoubleArray{Encoding: map[string]int{"org": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}} +) + +func request_AdminService_ListProjects_1(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.ProjectListRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["org"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "org") + } + + protoReq.Org, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "org", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_ListProjects_1); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.ListProjects(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + func request_AdminService_CreateWorkflowEvent_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq admin.WorkflowExecutionEventRequest var metadata runtime.ServerMetadata @@ -3424,6 +3767,41 @@ func request_AdminService_CreateWorkflowEvent_0(ctx context.Context, marshaler r } +func request_AdminService_CreateWorkflowEvent_1(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.WorkflowExecutionEventRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["event.execution_id.org"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "event.execution_id.org") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "event.execution_id.org", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "event.execution_id.org", err) + } + + msg, err := client.CreateWorkflowEvent(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + func request_AdminService_CreateNodeEvent_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq admin.NodeExecutionEventRequest var metadata runtime.ServerMetadata @@ -3441,6 +3819,41 @@ func request_AdminService_CreateNodeEvent_0(ctx context.Context, marshaler runti } +func request_AdminService_CreateNodeEvent_1(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.NodeExecutionEventRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["event.id.execution_id.org"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "event.id.execution_id.org") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "event.id.execution_id.org", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "event.id.execution_id.org", err) + } + + msg, err := client.CreateNodeEvent(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + func request_AdminService_CreateTaskEvent_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq admin.TaskExecutionEventRequest var metadata runtime.ServerMetadata @@ -3458,6 +3871,41 @@ func request_AdminService_CreateTaskEvent_0(ctx context.Context, marshaler runti } +func request_AdminService_CreateTaskEvent_1(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.TaskExecutionEventRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["event.parent_node_execution_id.execution_id.org"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "event.parent_node_execution_id.execution_id.org") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "event.parent_node_execution_id.execution_id.org", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "event.parent_node_execution_id.execution_id.org", err) + } + + msg, err := client.CreateTaskEvent(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + var ( filter_AdminService_GetTaskExecution_0 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0, "node_execution_id": 1, "execution_id": 2, "project": 3, "domain": 4, "name": 5, "node_id": 6, "task_id": 7, "version": 8, "retry_attempt": 9}, Base: []int{1, 20, 1, 1, 1, 4, 3, 2, 7, 5, 3, 0, 0, 0, 9, 6, 0, 15, 9, 0, 17, 12, 0, 19, 15, 0, 19, 18, 0, 20, 0}, Check: []int{0, 1, 2, 3, 4, 2, 6, 7, 2, 9, 10, 5, 8, 11, 2, 15, 16, 2, 18, 19, 2, 21, 22, 2, 24, 25, 2, 27, 28, 2, 30}} ) @@ -5086,14 +5534,52 @@ var ( filter_AdminService_ListMatchableAttributes_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} ) -func request_AdminService_ListMatchableAttributes_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq admin.ListMatchableAttributesRequest - var metadata runtime.ServerMetadata +func request_AdminService_ListMatchableAttributes_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.ListMatchableAttributesRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_ListMatchableAttributes_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.ListMatchableAttributes(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +var ( + filter_AdminService_ListMatchableAttributes_1 = &utilities.DoubleArray{Encoding: map[string]int{"org": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}} +) + +func request_AdminService_ListMatchableAttributes_1(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.ListMatchableAttributesRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["org"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "org") + } + + protoReq.Org, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "org", err) + } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_ListMatchableAttributes_0); err != nil { + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_ListMatchableAttributes_1); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } @@ -6226,6 +6712,26 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu }) + mux.Handle("POST", pattern_AdminService_CreateTask_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AdminService_CreateTask_1(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_CreateTask_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("GET", pattern_AdminService_GetTask_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -6406,6 +6912,26 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu }) + mux.Handle("POST", pattern_AdminService_CreateWorkflow_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AdminService_CreateWorkflow_1(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_CreateWorkflow_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("GET", pattern_AdminService_GetWorkflow_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -6586,6 +7112,26 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu }) + mux.Handle("POST", pattern_AdminService_CreateLaunchPlan_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AdminService_CreateLaunchPlan_1(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_CreateLaunchPlan_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("GET", pattern_AdminService_GetLaunchPlan_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -6686,6 +7232,26 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu }) + mux.Handle("GET", pattern_AdminService_ListActiveLaunchPlans_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AdminService_ListActiveLaunchPlans_1(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_ListActiveLaunchPlans_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("GET", pattern_AdminService_ListLaunchPlanIds_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -6866,6 +7432,26 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu }) + mux.Handle("PUT", pattern_AdminService_CreateExecution_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AdminService_CreateExecution_1(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_CreateExecution_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("POST", pattern_AdminService_RelaunchExecution_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -6886,6 +7472,26 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu }) + mux.Handle("POST", pattern_AdminService_RelaunchExecution_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AdminService_RelaunchExecution_1(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_RelaunchExecution_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("POST", pattern_AdminService_RecoverExecution_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -6906,6 +7512,26 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu }) + mux.Handle("POST", pattern_AdminService_RecoverExecution_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AdminService_RecoverExecution_1(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_RecoverExecution_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("GET", pattern_AdminService_GetExecution_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -7286,6 +7912,26 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu }) + mux.Handle("POST", pattern_AdminService_RegisterProject_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AdminService_RegisterProject_1(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_RegisterProject_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("PUT", pattern_AdminService_UpdateProject_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -7346,6 +7992,26 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu }) + mux.Handle("GET", pattern_AdminService_ListProjects_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AdminService_ListProjects_1(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_ListProjects_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("POST", pattern_AdminService_CreateWorkflowEvent_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -7366,6 +8032,26 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu }) + mux.Handle("POST", pattern_AdminService_CreateWorkflowEvent_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AdminService_CreateWorkflowEvent_1(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_CreateWorkflowEvent_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("POST", pattern_AdminService_CreateNodeEvent_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -7386,6 +8072,26 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu }) + mux.Handle("POST", pattern_AdminService_CreateNodeEvent_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AdminService_CreateNodeEvent_1(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_CreateNodeEvent_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("POST", pattern_AdminService_CreateTaskEvent_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -7406,6 +8112,26 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu }) + mux.Handle("POST", pattern_AdminService_CreateTaskEvent_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AdminService_CreateTaskEvent_1(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_CreateTaskEvent_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("GET", pattern_AdminService_GetTaskExecution_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -7906,6 +8632,26 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu }) + mux.Handle("GET", pattern_AdminService_ListMatchableAttributes_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AdminService_ListMatchableAttributes_1(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_ListMatchableAttributes_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("GET", pattern_AdminService_ListNamedEntities_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -8212,6 +8958,8 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu var ( pattern_AdminService_CreateTask_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v1", "tasks"}, "")) + pattern_AdminService_CreateTask_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"api", "v1", "tasks", "org", "id.org"}, "")) + pattern_AdminService_GetTask_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5, 1, 0, 4, 1, 5, 6}, []string{"api", "v1", "tasks", "id.project", "id.domain", "id.name", "id.version"}, "")) pattern_AdminService_GetTask_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5, 1, 0, 4, 1, 5, 6, 1, 0, 4, 1, 5, 7, 1, 0, 4, 1, 5, 8}, []string{"api", "v1", "tasks", "org", "id.org", "id.project", "id.domain", "id.name", "id.version"}, "")) @@ -8230,6 +8978,8 @@ var ( pattern_AdminService_CreateWorkflow_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v1", "workflows"}, "")) + pattern_AdminService_CreateWorkflow_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"api", "v1", "workflows", "org", "id.org"}, "")) + pattern_AdminService_GetWorkflow_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5, 1, 0, 4, 1, 5, 6}, []string{"api", "v1", "workflows", "id.project", "id.domain", "id.name", "id.version"}, "")) pattern_AdminService_GetWorkflow_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5, 1, 0, 4, 1, 5, 6, 1, 0, 4, 1, 5, 7, 1, 0, 4, 1, 5, 8}, []string{"api", "v1", "workflows", "org", "id.org", "id.project", "id.domain", "id.name", "id.version"}, "")) @@ -8248,6 +8998,8 @@ var ( pattern_AdminService_CreateLaunchPlan_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v1", "launch_plans"}, "")) + pattern_AdminService_CreateLaunchPlan_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"api", "v1", "launch_plans", "org", "id.org"}, "")) + pattern_AdminService_GetLaunchPlan_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5, 1, 0, 4, 1, 5, 6}, []string{"api", "v1", "launch_plans", "id.project", "id.domain", "id.name", "id.version"}, "")) pattern_AdminService_GetLaunchPlan_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5, 1, 0, 4, 1, 5, 6, 1, 0, 4, 1, 5, 7, 1, 0, 4, 1, 5, 8}, []string{"api", "v1", "launch_plans", "org", "id.org", "id.project", "id.domain", "id.name", "id.version"}, "")) @@ -8258,6 +9010,8 @@ var ( pattern_AdminService_ListActiveLaunchPlans_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4}, []string{"api", "v1", "active_launch_plans", "project", "domain"}, "")) + pattern_AdminService_ListActiveLaunchPlans_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5}, []string{"api", "v1", "active_launch_plans", "org", "project", "domain"}, "")) + pattern_AdminService_ListLaunchPlanIds_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4}, []string{"api", "v1", "launch_plan_ids", "project", "domain"}, "")) pattern_AdminService_ListLaunchPlanIds_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5}, []string{"api", "v1", "launch_plan_ids", "org", "project", "domain"}, "")) @@ -8276,10 +9030,16 @@ var ( pattern_AdminService_CreateExecution_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v1", "executions"}, "")) + pattern_AdminService_CreateExecution_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 3}, []string{"api", "v1", "executions", "org"}, "")) + pattern_AdminService_RelaunchExecution_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"api", "v1", "executions", "relaunch"}, "")) + pattern_AdminService_RelaunchExecution_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 2, 5}, []string{"api", "v1", "executions", "org", "id.org", "relaunch"}, "")) + pattern_AdminService_RecoverExecution_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"api", "v1", "executions", "recover"}, "")) + pattern_AdminService_RecoverExecution_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 2, 5}, []string{"api", "v1", "executions", "org", "id.org", "recover"}, "")) + pattern_AdminService_GetExecution_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5}, []string{"api", "v1", "executions", "id.project", "id.domain", "id.name"}, "")) pattern_AdminService_GetExecution_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5, 1, 0, 4, 1, 5, 6, 1, 0, 4, 1, 5, 7}, []string{"api", "v1", "executions", "org", "id.org", "id.project", "id.domain", "id.name"}, "")) @@ -8298,7 +9058,7 @@ var ( pattern_AdminService_TerminateExecution_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5}, []string{"api", "v1", "executions", "id.project", "id.domain", "id.name"}, "")) - pattern_AdminService_TerminateExecution_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 2, 4, 1, 0, 4, 1, 5, 5, 1, 0, 4, 1, 5, 6, 1, 0, 4, 1, 5, 7, 1, 0, 4, 1, 5, 8}, []string{"api", "v1", "data", "executions", "org", "id.org", "id.project", "id.domain", "id.name"}, "")) + pattern_AdminService_TerminateExecution_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5, 1, 0, 4, 1, 5, 6, 1, 0, 4, 1, 5, 7}, []string{"api", "v1", "executions", "org", "id.org", "id.project", "id.domain", "id.name"}, "")) pattern_AdminService_GetNodeExecution_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5, 1, 0, 4, 1, 5, 6}, []string{"api", "v1", "node_executions", "id.execution_id.project", "id.execution_id.domain", "id.execution_id.name", "id.node_id"}, "")) @@ -8318,18 +9078,28 @@ var ( pattern_AdminService_RegisterProject_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v1", "projects"}, "")) + pattern_AdminService_RegisterProject_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"api", "v1", "projects", "org", "project.org"}, "")) + pattern_AdminService_UpdateProject_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"api", "v1", "projects", "id"}, "")) pattern_AdminService_UpdateProject_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4}, []string{"api", "v1", "projects", "org", "id"}, "")) pattern_AdminService_ListProjects_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v1", "projects"}, "")) + pattern_AdminService_ListProjects_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 3}, []string{"api", "v1", "projects", "org"}, "")) + pattern_AdminService_CreateWorkflowEvent_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"api", "v1", "events", "workflows"}, "")) + pattern_AdminService_CreateWorkflowEvent_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 2, 5}, []string{"api", "v1", "events", "org", "event.execution_id.org", "workflows"}, "")) + pattern_AdminService_CreateNodeEvent_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"api", "v1", "events", "nodes"}, "")) + pattern_AdminService_CreateNodeEvent_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 2, 5}, []string{"api", "v1", "events", "org", "event.id.execution_id.org", "nodes"}, "")) + pattern_AdminService_CreateTaskEvent_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"api", "v1", "events", "tasks"}, "")) + pattern_AdminService_CreateTaskEvent_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 2, 5}, []string{"api", "v1", "events", "org", "event.parent_node_execution_id.execution_id.org", "tasks"}, "")) + pattern_AdminService_GetTaskExecution_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5, 1, 0, 4, 1, 5, 6, 1, 0, 4, 1, 5, 7, 1, 0, 4, 1, 5, 8, 1, 0, 4, 1, 5, 9, 1, 0, 4, 1, 5, 10, 1, 0, 4, 1, 5, 11}, []string{"api", "v1", "task_executions", "id.node_execution_id.execution_id.project", "id.node_execution_id.execution_id.domain", "id.node_execution_id.execution_id.name", "id.node_execution_id.node_id", "id.task_id.project", "id.task_id.domain", "id.task_id.name", "id.task_id.version", "id.retry_attempt"}, "")) pattern_AdminService_GetTaskExecution_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5, 1, 0, 4, 1, 5, 6, 1, 0, 4, 1, 5, 7, 1, 0, 4, 1, 5, 8, 1, 0, 4, 1, 5, 9, 1, 0, 4, 1, 5, 10, 1, 0, 4, 1, 5, 11, 1, 0, 4, 1, 5, 12, 1, 0, 4, 1, 5, 13}, []string{"api", "v1", "task_executions", "org", "id.node_execution_id.execution_id.org", "id.node_execution_id.execution_id.project", "id.node_execution_id.execution_id.domain", "id.node_execution_id.execution_id.name", "id.node_execution_id.node_id", "id.task_id.project", "id.task_id.domain", "id.task_id.name", "id.task_id.version", "id.retry_attempt"}, "")) @@ -8380,6 +9150,8 @@ var ( pattern_AdminService_ListMatchableAttributes_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v1", "matchable_attributes"}, "")) + pattern_AdminService_ListMatchableAttributes_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 3}, []string{"api", "v1", "matchable_attributes", "org"}, "")) + pattern_AdminService_ListNamedEntities_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5}, []string{"api", "v1", "named_entities", "resource_type", "project", "domain"}, "")) pattern_AdminService_ListNamedEntities_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5, 1, 0, 4, 1, 5, 6}, []string{"api", "v1", "named_entities", "resource_type", "org", "project", "domain"}, "")) @@ -8414,6 +9186,8 @@ var ( var ( forward_AdminService_CreateTask_0 = runtime.ForwardResponseMessage + forward_AdminService_CreateTask_1 = runtime.ForwardResponseMessage + forward_AdminService_GetTask_0 = runtime.ForwardResponseMessage forward_AdminService_GetTask_1 = runtime.ForwardResponseMessage @@ -8432,6 +9206,8 @@ var ( forward_AdminService_CreateWorkflow_0 = runtime.ForwardResponseMessage + forward_AdminService_CreateWorkflow_1 = runtime.ForwardResponseMessage + forward_AdminService_GetWorkflow_0 = runtime.ForwardResponseMessage forward_AdminService_GetWorkflow_1 = runtime.ForwardResponseMessage @@ -8450,6 +9226,8 @@ var ( forward_AdminService_CreateLaunchPlan_0 = runtime.ForwardResponseMessage + forward_AdminService_CreateLaunchPlan_1 = runtime.ForwardResponseMessage + forward_AdminService_GetLaunchPlan_0 = runtime.ForwardResponseMessage forward_AdminService_GetLaunchPlan_1 = runtime.ForwardResponseMessage @@ -8460,6 +9238,8 @@ var ( forward_AdminService_ListActiveLaunchPlans_0 = runtime.ForwardResponseMessage + forward_AdminService_ListActiveLaunchPlans_1 = runtime.ForwardResponseMessage + forward_AdminService_ListLaunchPlanIds_0 = runtime.ForwardResponseMessage forward_AdminService_ListLaunchPlanIds_1 = runtime.ForwardResponseMessage @@ -8478,10 +9258,16 @@ var ( forward_AdminService_CreateExecution_0 = runtime.ForwardResponseMessage + forward_AdminService_CreateExecution_1 = runtime.ForwardResponseMessage + forward_AdminService_RelaunchExecution_0 = runtime.ForwardResponseMessage + forward_AdminService_RelaunchExecution_1 = runtime.ForwardResponseMessage + forward_AdminService_RecoverExecution_0 = runtime.ForwardResponseMessage + forward_AdminService_RecoverExecution_1 = runtime.ForwardResponseMessage + forward_AdminService_GetExecution_0 = runtime.ForwardResponseMessage forward_AdminService_GetExecution_1 = runtime.ForwardResponseMessage @@ -8520,18 +9306,28 @@ var ( forward_AdminService_RegisterProject_0 = runtime.ForwardResponseMessage + forward_AdminService_RegisterProject_1 = runtime.ForwardResponseMessage + forward_AdminService_UpdateProject_0 = runtime.ForwardResponseMessage forward_AdminService_UpdateProject_1 = runtime.ForwardResponseMessage forward_AdminService_ListProjects_0 = runtime.ForwardResponseMessage + forward_AdminService_ListProjects_1 = runtime.ForwardResponseMessage + forward_AdminService_CreateWorkflowEvent_0 = runtime.ForwardResponseMessage + forward_AdminService_CreateWorkflowEvent_1 = runtime.ForwardResponseMessage + forward_AdminService_CreateNodeEvent_0 = runtime.ForwardResponseMessage + forward_AdminService_CreateNodeEvent_1 = runtime.ForwardResponseMessage + forward_AdminService_CreateTaskEvent_0 = runtime.ForwardResponseMessage + forward_AdminService_CreateTaskEvent_1 = runtime.ForwardResponseMessage + forward_AdminService_GetTaskExecution_0 = runtime.ForwardResponseMessage forward_AdminService_GetTaskExecution_1 = runtime.ForwardResponseMessage @@ -8582,6 +9378,8 @@ var ( forward_AdminService_ListMatchableAttributes_0 = runtime.ForwardResponseMessage + forward_AdminService_ListMatchableAttributes_1 = runtime.ForwardResponseMessage + forward_AdminService_ListNamedEntities_0 = runtime.ForwardResponseMessage forward_AdminService_ListNamedEntities_1 = runtime.ForwardResponseMessage diff --git a/flyteidl/gen/pb-go/flyteidl/service/admin.swagger.json b/flyteidl/gen/pb-go/flyteidl/service/admin.swagger.json index 2d8da7eabf..e3661ae4f5 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/admin.swagger.json +++ b/flyteidl/gen/pb-go/flyteidl/service/admin.swagger.json @@ -62,6 +62,80 @@ ] } }, + "/api/v1/active_launch_plans/org/{org}/{project}/{domain}": { + "get": { + "summary": "List active versions of :ref:`ref_flyteidl.admin.LaunchPlan`.", + "operationId": "ListActiveLaunchPlans2", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminLaunchPlanList" + } + } + }, + "parameters": [ + { + "name": "org", + "description": "Optional, org key applied to the resource.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "project", + "description": "Name of the project that contains the identifiers.\n+required.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "domain", + "description": "Name of the domain the identifiers belongs to within the project.\n+required.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "limit", + "description": "Indicates the number of resources to be returned.\n+required.", + "in": "query", + "required": false, + "type": "integer", + "format": "int64" + }, + { + "name": "token", + "description": "In the case of multiple pages of results, the server-provided token can be used to fetch the next page\nin a query.\n+optional.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "sort_by.key", + "description": "Indicates an attribute to sort the response values.\n+required.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "sort_by.direction", + "description": "Indicates the direction to apply sort key for response values.\n+optional.\n\n - DESCENDING: By default, fields are sorted in descending order.", + "in": "query", + "required": false, + "type": "string", + "enum": [ + "DESCENDING", + "ASCENDING" + ], + "default": "DESCENDING" + } + ], + "tags": [ + "AdminService" + ] + } + }, "/api/v1/active_launch_plans/{id.project}/{id.domain}/{id.name}": { "get": { "summary": "Fetch the active version of a :ref:`ref_flyteidl.admin.LaunchPlan`.", @@ -530,59 +604,6 @@ "tags": [ "AdminService" ] - }, - "delete": { - "summary": "Terminates an in-progress :ref:`ref_flyteidl.admin.Execution`.", - "operationId": "TerminateExecution2", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/adminExecutionTerminateResponse" - } - } - }, - "parameters": [ - { - "name": "id.org", - "description": "Optional, org key applied to the resource.", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "id.project", - "description": "Name of the project the resource belongs to.", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "id.domain", - "description": "Name of the domain the resource belongs to.\nA domain can be considered as a subset within a specific project.", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "id.name", - "description": "User or system provided value for the resource.", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/adminExecutionTerminateRequest" - } - } - ], - "tags": [ - "AdminService" - ] } }, "/api/v1/data/executions/{id.project}/{id.domain}/{id.name}": { @@ -1529,6 +1550,108 @@ ] } }, + "/api/v1/events/org/{event.execution_id.org}/workflows": { + "post": { + "summary": "Indicates a :ref:`ref_flyteidl.event.WorkflowExecutionEvent` has occurred.", + "operationId": "CreateWorkflowEvent2", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminWorkflowExecutionEventResponse" + } + } + }, + "parameters": [ + { + "name": "event.execution_id.org", + "description": "Optional, org key applied to the resource.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/adminWorkflowExecutionEventRequest" + } + } + ], + "tags": [ + "AdminService" + ] + } + }, + "/api/v1/events/org/{event.id.execution_id.org}/nodes": { + "post": { + "summary": "Indicates a :ref:`ref_flyteidl.event.NodeExecutionEvent` has occurred.", + "operationId": "CreateNodeEvent2", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminNodeExecutionEventResponse" + } + } + }, + "parameters": [ + { + "name": "event.id.execution_id.org", + "description": "Optional, org key applied to the resource.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/adminNodeExecutionEventRequest" + } + } + ], + "tags": [ + "AdminService" + ] + } + }, + "/api/v1/events/org/{event.parent_node_execution_id.execution_id.org}/tasks": { + "post": { + "summary": "Indicates a :ref:`ref_flyteidl.event.TaskExecutionEvent` has occurred.", + "operationId": "CreateTaskEvent2", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminTaskExecutionEventResponse" + } + } + }, + "parameters": [ + { + "name": "event.parent_node_execution_id.execution_id.org", + "description": "Optional, org key applied to the resource.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/adminTaskExecutionEventRequest" + } + } + ], + "tags": [ + "AdminService" + ] + } + }, "/api/v1/events/tasks": { "post": { "summary": "Indicates a :ref:`ref_flyteidl.event.TaskExecutionEvent` has occurred.", @@ -1610,6 +1733,74 @@ ] } }, + "/api/v1/executions/org/{id.org}/recover": { + "post": { + "summary": "Recreates a previously-run workflow execution that will only start executing from the last known failure point.\nIn Recover mode, users cannot change any input parameters or update the version of the execution.\nThis is extremely useful to recover from system errors and byzantine faults like - Loss of K8s cluster, bugs in platform or instability, machine failures,\ndownstream system failures (downstream services), or simply to recover executions that failed because of retry exhaustion and should complete if tried again.\nSee :ref:`ref_flyteidl.admin.ExecutionRecoverRequest` for more details.", + "operationId": "RecoverExecution2", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminExecutionCreateResponse" + } + } + }, + "parameters": [ + { + "name": "id.org", + "description": "Optional, org key applied to the resource.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/adminExecutionRecoverRequest" + } + } + ], + "tags": [ + "AdminService" + ] + } + }, + "/api/v1/executions/org/{id.org}/relaunch": { + "post": { + "summary": "Triggers the creation of an identical :ref:`ref_flyteidl.admin.Execution`", + "operationId": "RelaunchExecution2", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminExecutionCreateResponse" + } + } + }, + "parameters": [ + { + "name": "id.org", + "description": "Optional, org key applied to the resource.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/adminExecutionRelaunchRequest" + } + } + ], + "tags": [ + "AdminService" + ] + } + }, "/api/v1/executions/org/{id.org}/{id.project}/{id.domain}": { "get": { "summary": "Fetch a list of :ref:`ref_flyteidl.admin.Execution`.", @@ -1744,6 +1935,59 @@ "AdminService" ] }, + "delete": { + "summary": "Terminates an in-progress :ref:`ref_flyteidl.admin.Execution`.", + "operationId": "TerminateExecution2", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminExecutionTerminateResponse" + } + } + }, + "parameters": [ + { + "name": "id.org", + "description": "Optional, org key applied to the resource.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.project", + "description": "Name of the project the resource belongs to.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.domain", + "description": "Name of the domain the resource belongs to.\nA domain can be considered as a subset within a specific project.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id.name", + "description": "User or system provided value for the resource.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/adminExecutionTerminateRequest" + } + } + ], + "tags": [ + "AdminService" + ] + }, "put": { "summary": "Update execution belonging to project domain :ref:`ref_flyteidl.admin.Execution`.", "operationId": "UpdateExecution2", @@ -1778,8 +2022,42 @@ "type": "string" }, { - "name": "id.name", - "description": "User or system provided value for the resource.", + "name": "id.name", + "description": "User or system provided value for the resource.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/adminExecutionUpdateRequest" + } + } + ], + "tags": [ + "AdminService" + ] + } + }, + "/api/v1/executions/org/{org}": { + "put": { + "summary": "Triggers the creation of a :ref:`ref_flyteidl.admin.Execution`", + "operationId": "CreateExecution2", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminExecutionCreateResponse" + } + } + }, + "parameters": [ + { + "name": "org", + "description": "Optional, org key applied to the resource.", "in": "path", "required": true, "type": "string" @@ -1789,7 +2067,7 @@ "in": "body", "required": true, "schema": { - "$ref": "#/definitions/adminExecutionUpdateRequest" + "$ref": "#/definitions/adminExecutionCreateRequest" } } ], @@ -2268,6 +2546,40 @@ ] } }, + "/api/v1/launch_plans/org/{id.org}": { + "post": { + "summary": "Create and upload a :ref:`ref_flyteidl.admin.LaunchPlan` definition", + "operationId": "CreateLaunchPlan2", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminLaunchPlanCreateResponse" + } + } + }, + "parameters": [ + { + "name": "id.org", + "description": "Optional, org key applied to the resource.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/adminLaunchPlanCreateRequest" + } + } + ], + "tags": [ + "AdminService" + ] + } + }, "/api/v1/launch_plans/org/{id.org}/{id.project}/{id.domain}": { "get": { "summary": "Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions.", @@ -2876,6 +3188,57 @@ } }, "parameters": [ + { + "name": "resource_type", + "description": "+required.\n\n - TASK_RESOURCE: Applies to customizable task resource requests and limits.\n - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources.\n - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment.\n - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run\n - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec.\n - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type.\n - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides.\n - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run.", + "in": "query", + "required": false, + "type": "string", + "enum": [ + "TASK_RESOURCE", + "CLUSTER_RESOURCE", + "EXECUTION_QUEUE", + "EXECUTION_CLUSTER_LABEL", + "QUALITY_OF_SERVICE_SPECIFICATION", + "PLUGIN_OVERRIDE", + "WORKFLOW_EXECUTION_CONFIG", + "CLUSTER_ASSIGNMENT" + ], + "default": "TASK_RESOURCE" + }, + { + "name": "org", + "description": "Optional, org filter applied to list project requests.", + "in": "query", + "required": false, + "type": "string" + } + ], + "tags": [ + "AdminService" + ] + } + }, + "/api/v1/matchable_attributes/org/{org}": { + "get": { + "summary": "Lists custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a specific resource type.", + "operationId": "ListMatchableAttributes2", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminListMatchableAttributesResponse" + } + } + }, + "parameters": [ + { + "name": "org", + "description": "Optional, org filter applied to list project requests.", + "in": "path", + "required": true, + "type": "string" + }, { "name": "resource_type", "description": "+required.\n\n - TASK_RESOURCE: Applies to customizable task resource requests and limits.\n - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources.\n - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment.\n - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run\n - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec.\n - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type.\n - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides.\n - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run.", @@ -4334,6 +4697,13 @@ "ASCENDING" ], "default": "DESCENDING" + }, + { + "name": "org", + "description": "Optional, org filter applied to list project requests.", + "in": "query", + "required": false, + "type": "string" } ], "tags": [ @@ -4366,6 +4736,73 @@ ] } }, + "/api/v1/projects/org/{org}": { + "get": { + "summary": "Fetches a list of :ref:`ref_flyteidl.admin.Project`", + "operationId": "ListProjects2", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminProjects" + } + } + }, + "parameters": [ + { + "name": "org", + "description": "Optional, org filter applied to list project requests.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "limit", + "description": "Indicates the number of projects to be returned.\n+required.", + "in": "query", + "required": false, + "type": "integer", + "format": "int64" + }, + { + "name": "token", + "description": "In the case of multiple pages of results, this server-provided token can be used to fetch the next page\nin a query.\n+optional.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "filters", + "description": "Indicates a list of filters passed as string.\nMore info on constructing filters : \u003cLink\u003e\n+optional.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "sort_by.key", + "description": "Indicates an attribute to sort the response values.\n+required.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "sort_by.direction", + "description": "Indicates the direction to apply sort key for response values.\n+optional.\n\n - DESCENDING: By default, fields are sorted in descending order.", + "in": "query", + "required": false, + "type": "string", + "enum": [ + "DESCENDING", + "ASCENDING" + ], + "default": "DESCENDING" + } + ], + "tags": [ + "AdminService" + ] + } + }, "/api/v1/projects/org/{org}/{id}": { "put": { "summary": "Updates an existing :ref:`ref_flyteidl.admin.Project`\nflyteidl.admin.Project should be passed but the domains property should be empty;\nit will be ignored in the handler as domains cannot be updated via this API.", @@ -4407,6 +4844,40 @@ ] } }, + "/api/v1/projects/org/{project.org}": { + "post": { + "summary": "Registers a :ref:`ref_flyteidl.admin.Project` with the Flyte deployment.", + "operationId": "RegisterProject2", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminProjectRegisterResponse" + } + } + }, + "parameters": [ + { + "name": "project.org", + "description": "Optional, org key applied to the resource.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/adminProjectRegisterRequest" + } + } + ], + "tags": [ + "AdminService" + ] + } + }, "/api/v1/projects/{id}": { "put": { "summary": "Updates an existing :ref:`ref_flyteidl.admin.Project`\nflyteidl.admin.Project should be passed but the domains property should be empty;\nit will be ignored in the handler as domains cannot be updated via this API.", @@ -4957,6 +5428,40 @@ ] } }, + "/api/v1/tasks/org/{id.org}": { + "post": { + "summary": "Create and upload a :ref:`ref_flyteidl.admin.Task` definition", + "operationId": "CreateTask2", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/flyteidladminTaskCreateResponse" + } + } + }, + "parameters": [ + { + "name": "id.org", + "description": "Optional, org key applied to the resource.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/flyteidladminTaskCreateRequest" + } + } + ], + "tags": [ + "AdminService" + ] + } + }, "/api/v1/tasks/org/{id.org}/{id.project}/{id.domain}": { "get": { "summary": "Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions.", @@ -5984,6 +6489,40 @@ ] } }, + "/api/v1/workflows/org/{id.org}": { + "post": { + "summary": "Create and upload a :ref:`ref_flyteidl.admin.Workflow` definition", + "operationId": "CreateWorkflow2", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminWorkflowCreateResponse" + } + } + }, + "parameters": [ + { + "name": "id.org", + "description": "Optional, org key applied to the resource.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/adminWorkflowCreateRequest" + } + } + ], + "tags": [ + "AdminService" + ] + } + }, "/api/v1/workflows/org/{id.org}/{id.project}/{id.domain}": { "get": { "summary": "Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions.", diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/README.md b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/README.md index 11a3a648af..4809e080ec 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/README.md +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/README.md @@ -22,12 +22,19 @@ All URIs are relative to *http://localhost* Class | Method | HTTP request | Description ------------ | ------------- | ------------- | ------------- *AdminServiceApi* | [**CreateExecution**](docs/AdminServiceApi.md#createexecution) | **Post** /api/v1/executions | Triggers the creation of a :ref:`ref_flyteidl.admin.Execution` +*AdminServiceApi* | [**CreateExecution2**](docs/AdminServiceApi.md#createexecution2) | **Put** /api/v1/executions/org/{org} | Triggers the creation of a :ref:`ref_flyteidl.admin.Execution` *AdminServiceApi* | [**CreateLaunchPlan**](docs/AdminServiceApi.md#createlaunchplan) | **Post** /api/v1/launch_plans | Create and upload a :ref:`ref_flyteidl.admin.LaunchPlan` definition +*AdminServiceApi* | [**CreateLaunchPlan2**](docs/AdminServiceApi.md#createlaunchplan2) | **Post** /api/v1/launch_plans/org/{id.org} | Create and upload a :ref:`ref_flyteidl.admin.LaunchPlan` definition *AdminServiceApi* | [**CreateNodeEvent**](docs/AdminServiceApi.md#createnodeevent) | **Post** /api/v1/events/nodes | Indicates a :ref:`ref_flyteidl.event.NodeExecutionEvent` has occurred. +*AdminServiceApi* | [**CreateNodeEvent2**](docs/AdminServiceApi.md#createnodeevent2) | **Post** /api/v1/events/org/{event.id.execution_id.org}/nodes | Indicates a :ref:`ref_flyteidl.event.NodeExecutionEvent` has occurred. *AdminServiceApi* | [**CreateTask**](docs/AdminServiceApi.md#createtask) | **Post** /api/v1/tasks | Create and upload a :ref:`ref_flyteidl.admin.Task` definition +*AdminServiceApi* | [**CreateTask2**](docs/AdminServiceApi.md#createtask2) | **Post** /api/v1/tasks/org/{id.org} | Create and upload a :ref:`ref_flyteidl.admin.Task` definition *AdminServiceApi* | [**CreateTaskEvent**](docs/AdminServiceApi.md#createtaskevent) | **Post** /api/v1/events/tasks | Indicates a :ref:`ref_flyteidl.event.TaskExecutionEvent` has occurred. +*AdminServiceApi* | [**CreateTaskEvent2**](docs/AdminServiceApi.md#createtaskevent2) | **Post** /api/v1/events/org/{event.parent_node_execution_id.execution_id.org}/tasks | Indicates a :ref:`ref_flyteidl.event.TaskExecutionEvent` has occurred. *AdminServiceApi* | [**CreateWorkflow**](docs/AdminServiceApi.md#createworkflow) | **Post** /api/v1/workflows | Create and upload a :ref:`ref_flyteidl.admin.Workflow` definition +*AdminServiceApi* | [**CreateWorkflow2**](docs/AdminServiceApi.md#createworkflow2) | **Post** /api/v1/workflows/org/{id.org} | Create and upload a :ref:`ref_flyteidl.admin.Workflow` definition *AdminServiceApi* | [**CreateWorkflowEvent**](docs/AdminServiceApi.md#createworkflowevent) | **Post** /api/v1/events/workflows | Indicates a :ref:`ref_flyteidl.event.WorkflowExecutionEvent` has occurred. +*AdminServiceApi* | [**CreateWorkflowEvent2**](docs/AdminServiceApi.md#createworkflowevent2) | **Post** /api/v1/events/org/{event.execution_id.org}/workflows | Indicates a :ref:`ref_flyteidl.event.WorkflowExecutionEvent` has occurred. *AdminServiceApi* | [**DeleteProjectAttributes**](docs/AdminServiceApi.md#deleteprojectattributes) | **Delete** /api/v1/project_attributes/{project} | Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. *AdminServiceApi* | [**DeleteProjectAttributes2**](docs/AdminServiceApi.md#deleteprojectattributes2) | **Delete** /api/v1/project_domain_attributes/org/{org}/{project} | Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. *AdminServiceApi* | [**DeleteProjectDomainAttributes**](docs/AdminServiceApi.md#deleteprojectdomainattributes) | **Delete** /api/v1/project_domain_attributes/{project}/{domain} | Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. @@ -68,6 +75,7 @@ Class | Method | HTTP request | Description *AdminServiceApi* | [**GetWorkflowAttributes**](docs/AdminServiceApi.md#getworkflowattributes) | **Get** /api/v1/workflow_attributes/{project}/{domain}/{workflow} | Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. *AdminServiceApi* | [**GetWorkflowAttributes2**](docs/AdminServiceApi.md#getworkflowattributes2) | **Get** /api/v1/workflow_attributes/org/{org}/{project}/{domain}/{workflow} | Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. *AdminServiceApi* | [**ListActiveLaunchPlans**](docs/AdminServiceApi.md#listactivelaunchplans) | **Get** /api/v1/active_launch_plans/{project}/{domain} | List active versions of :ref:`ref_flyteidl.admin.LaunchPlan`. +*AdminServiceApi* | [**ListActiveLaunchPlans2**](docs/AdminServiceApi.md#listactivelaunchplans2) | **Get** /api/v1/active_launch_plans/org/{org}/{project}/{domain} | List active versions of :ref:`ref_flyteidl.admin.LaunchPlan`. *AdminServiceApi* | [**ListDescriptionEntities**](docs/AdminServiceApi.md#listdescriptionentities) | **Get** /api/v1/description_entities/{resource_type}/{id.project}/{id.domain}/{id.name} | Fetch a list of :ref:`ref_flyteidl.admin.DescriptionEntity` definitions. *AdminServiceApi* | [**ListDescriptionEntities2**](docs/AdminServiceApi.md#listdescriptionentities2) | **Get** /api/v1/description_entities/{resource_type}/org/{id.org}/{id.project}/{id.domain}/{id.name} | Fetch a list of :ref:`ref_flyteidl.admin.DescriptionEntity` definitions. *AdminServiceApi* | [**ListDescriptionEntities3**](docs/AdminServiceApi.md#listdescriptionentities3) | **Get** /api/v1/description_entities/{resource_type}/{id.project}/{id.domain} | Fetch a list of :ref:`ref_flyteidl.admin.DescriptionEntity` definitions. @@ -81,6 +89,7 @@ Class | Method | HTTP request | Description *AdminServiceApi* | [**ListLaunchPlans3**](docs/AdminServiceApi.md#listlaunchplans3) | **Get** /api/v1/launch_plans/{id.project}/{id.domain} | Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. *AdminServiceApi* | [**ListLaunchPlans4**](docs/AdminServiceApi.md#listlaunchplans4) | **Get** /api/v1/launch_plans/org/{id.org}/{id.project}/{id.domain} | Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. *AdminServiceApi* | [**ListMatchableAttributes**](docs/AdminServiceApi.md#listmatchableattributes) | **Get** /api/v1/matchable_attributes | Lists custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a specific resource type. +*AdminServiceApi* | [**ListMatchableAttributes2**](docs/AdminServiceApi.md#listmatchableattributes2) | **Get** /api/v1/matchable_attributes/org/{org} | Lists custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a specific resource type. *AdminServiceApi* | [**ListNamedEntities**](docs/AdminServiceApi.md#listnamedentities) | **Get** /api/v1/named_entities/{resource_type}/{project}/{domain} | Returns a list of :ref:`ref_flyteidl.admin.NamedEntity` objects. *AdminServiceApi* | [**ListNamedEntities2**](docs/AdminServiceApi.md#listnamedentities2) | **Get** /api/v1/named_entities/{resource_type}/org/{org}/{project}/{domain} | Returns a list of :ref:`ref_flyteidl.admin.NamedEntity` objects. *AdminServiceApi* | [**ListNodeExecutions**](docs/AdminServiceApi.md#listnodeexecutions) | **Get** /api/v1/node_executions/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name} | Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution`. @@ -88,6 +97,7 @@ Class | Method | HTTP request | Description *AdminServiceApi* | [**ListNodeExecutionsForTask**](docs/AdminServiceApi.md#listnodeexecutionsfortask) | **Get** /api/v1/children/task_executions/{task_execution_id.node_execution_id.execution_id.project}/{task_execution_id.node_execution_id.execution_id.domain}/{task_execution_id.node_execution_id.execution_id.name}/{task_execution_id.node_execution_id.node_id}/{task_execution_id.task_id.project}/{task_execution_id.task_id.domain}/{task_execution_id.task_id.name}/{task_execution_id.task_id.version}/{task_execution_id.retry_attempt} | Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution` launched by the reference :ref:`ref_flyteidl.admin.TaskExecution`. *AdminServiceApi* | [**ListNodeExecutionsForTask2**](docs/AdminServiceApi.md#listnodeexecutionsfortask2) | **Get** /api/v1/children/task_executions/org/{task_execution_id.node_execution_id.execution_id.org}/{task_execution_id.node_execution_id.execution_id.project}/{task_execution_id.node_execution_id.execution_id.domain}/{task_execution_id.node_execution_id.execution_id.name}/{task_execution_id.node_execution_id.node_id}/{task_execution_id.task_id.project}/{task_execution_id.task_id.domain}/{task_execution_id.task_id.name}/{task_execution_id.task_id.version}/{task_execution_id.retry_attempt} | Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution` launched by the reference :ref:`ref_flyteidl.admin.TaskExecution`. *AdminServiceApi* | [**ListProjects**](docs/AdminServiceApi.md#listprojects) | **Get** /api/v1/projects | Fetches a list of :ref:`ref_flyteidl.admin.Project` +*AdminServiceApi* | [**ListProjects2**](docs/AdminServiceApi.md#listprojects2) | **Get** /api/v1/projects/org/{org} | Fetches a list of :ref:`ref_flyteidl.admin.Project` *AdminServiceApi* | [**ListTaskExecutions**](docs/AdminServiceApi.md#listtaskexecutions) | **Get** /api/v1/task_executions/{node_execution_id.execution_id.project}/{node_execution_id.execution_id.domain}/{node_execution_id.execution_id.name}/{node_execution_id.node_id} | Fetches a list of :ref:`ref_flyteidl.admin.TaskExecution`. *AdminServiceApi* | [**ListTaskExecutions2**](docs/AdminServiceApi.md#listtaskexecutions2) | **Get** /api/v1/task_executions/org/{node_execution_id.execution_id.org}/{node_execution_id.execution_id.project}/{node_execution_id.execution_id.domain}/{node_execution_id.execution_id.name}/{node_execution_id.node_id} | Fetches a list of :ref:`ref_flyteidl.admin.TaskExecution`. *AdminServiceApi* | [**ListTaskIds**](docs/AdminServiceApi.md#listtaskids) | **Get** /api/v1/task_ids/{project}/{domain} | Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of task objects. @@ -103,10 +113,13 @@ Class | Method | HTTP request | Description *AdminServiceApi* | [**ListWorkflows3**](docs/AdminServiceApi.md#listworkflows3) | **Get** /api/v1/workflows/{id.project}/{id.domain} | Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. *AdminServiceApi* | [**ListWorkflows4**](docs/AdminServiceApi.md#listworkflows4) | **Get** /api/v1/workflows/org/{id.org}/{id.project}/{id.domain} | Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. *AdminServiceApi* | [**RecoverExecution**](docs/AdminServiceApi.md#recoverexecution) | **Post** /api/v1/executions/recover | Recreates a previously-run workflow execution that will only start executing from the last known failure point. In Recover mode, users cannot change any input parameters or update the version of the execution. This is extremely useful to recover from system errors and byzantine faults like - Loss of K8s cluster, bugs in platform or instability, machine failures, downstream system failures (downstream services), or simply to recover executions that failed because of retry exhaustion and should complete if tried again. See :ref:`ref_flyteidl.admin.ExecutionRecoverRequest` for more details. +*AdminServiceApi* | [**RecoverExecution2**](docs/AdminServiceApi.md#recoverexecution2) | **Post** /api/v1/executions/org/{id.org}/recover | Recreates a previously-run workflow execution that will only start executing from the last known failure point. In Recover mode, users cannot change any input parameters or update the version of the execution. This is extremely useful to recover from system errors and byzantine faults like - Loss of K8s cluster, bugs in platform or instability, machine failures, downstream system failures (downstream services), or simply to recover executions that failed because of retry exhaustion and should complete if tried again. See :ref:`ref_flyteidl.admin.ExecutionRecoverRequest` for more details. *AdminServiceApi* | [**RegisterProject**](docs/AdminServiceApi.md#registerproject) | **Post** /api/v1/projects | Registers a :ref:`ref_flyteidl.admin.Project` with the Flyte deployment. +*AdminServiceApi* | [**RegisterProject2**](docs/AdminServiceApi.md#registerproject2) | **Post** /api/v1/projects/org/{project.org} | Registers a :ref:`ref_flyteidl.admin.Project` with the Flyte deployment. *AdminServiceApi* | [**RelaunchExecution**](docs/AdminServiceApi.md#relaunchexecution) | **Post** /api/v1/executions/relaunch | Triggers the creation of an identical :ref:`ref_flyteidl.admin.Execution` +*AdminServiceApi* | [**RelaunchExecution2**](docs/AdminServiceApi.md#relaunchexecution2) | **Post** /api/v1/executions/org/{id.org}/relaunch | Triggers the creation of an identical :ref:`ref_flyteidl.admin.Execution` *AdminServiceApi* | [**TerminateExecution**](docs/AdminServiceApi.md#terminateexecution) | **Delete** /api/v1/executions/{id.project}/{id.domain}/{id.name} | Terminates an in-progress :ref:`ref_flyteidl.admin.Execution`. -*AdminServiceApi* | [**TerminateExecution2**](docs/AdminServiceApi.md#terminateexecution2) | **Delete** /api/v1/data/executions/org/{id.org}/{id.project}/{id.domain}/{id.name} | Terminates an in-progress :ref:`ref_flyteidl.admin.Execution`. +*AdminServiceApi* | [**TerminateExecution2**](docs/AdminServiceApi.md#terminateexecution2) | **Delete** /api/v1/executions/org/{id.org}/{id.project}/{id.domain}/{id.name} | Terminates an in-progress :ref:`ref_flyteidl.admin.Execution`. *AdminServiceApi* | [**UpdateExecution**](docs/AdminServiceApi.md#updateexecution) | **Put** /api/v1/executions/{id.project}/{id.domain}/{id.name} | Update execution belonging to project domain :ref:`ref_flyteidl.admin.Execution`. *AdminServiceApi* | [**UpdateExecution2**](docs/AdminServiceApi.md#updateexecution2) | **Put** /api/v1/executions/org/{id.org}/{id.project}/{id.domain}/{id.name} | Update execution belonging to project domain :ref:`ref_flyteidl.admin.Execution`. *AdminServiceApi* | [**UpdateLaunchPlan**](docs/AdminServiceApi.md#updatelaunchplan) | **Put** /api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version} | Updates the status of a registered :ref:`ref_flyteidl.admin.LaunchPlan`. diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/api/swagger.yaml b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/api/swagger.yaml index 3170fbe45f..3e787f292d 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/api/swagger.yaml +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/api/swagger.yaml @@ -50,6 +50,73 @@ paths: description: "A successful response." schema: $ref: "#/definitions/adminLaunchPlan" + /api/v1/active_launch_plans/org/{org}/{project}/{domain}: + get: + tags: + - "AdminService" + summary: "List active versions of :ref:`ref_flyteidl.admin.LaunchPlan`." + operationId: "ListActiveLaunchPlans2" + parameters: + - name: "org" + in: "path" + description: "Optional, org key applied to the resource." + required: true + type: "string" + x-exportParamName: "Org" + - name: "project" + in: "path" + description: "Name of the project that contains the identifiers.\n+required." + required: true + type: "string" + x-exportParamName: "Project" + - name: "domain" + in: "path" + description: "Name of the domain the identifiers belongs to within the project.\n\ + +required." + required: true + type: "string" + x-exportParamName: "Domain" + - name: "limit" + in: "query" + description: "Indicates the number of resources to be returned.\n+required." + required: false + type: "integer" + format: "int64" + x-exportParamName: "Limit" + x-optionalDataType: "Int64" + - name: "token" + in: "query" + description: "In the case of multiple pages of results, the server-provided\ + \ token can be used to fetch the next page\nin a query.\n+optional." + required: false + type: "string" + x-exportParamName: "Token" + x-optionalDataType: "String" + - name: "sort_by.key" + in: "query" + description: "Indicates an attribute to sort the response values.\n+required." + required: false + type: "string" + x-exportParamName: "SortByKey" + x-optionalDataType: "String" + - name: "sort_by.direction" + in: "query" + description: "Indicates the direction to apply sort key for response values.\n\ + +optional.\n\n - DESCENDING: By default, fields are sorted in descending\ + \ order." + required: false + type: "string" + default: "DESCENDING" + enum: + - "DESCENDING" + - "ASCENDING" + x-exportParamName: "SortByDirection" + x-optionalDataType: "String" + responses: + 200: + description: "A successful response." + schema: + $ref: "#/definitions/adminLaunchPlanList" /api/v1/active_launch_plans/{id.project}/{id.domain}/{id.name}: get: tags: @@ -486,48 +553,6 @@ paths: description: "A successful response." schema: $ref: "#/definitions/adminWorkflowExecutionGetDataResponse" - delete: - tags: - - "AdminService" - summary: "Terminates an in-progress :ref:`ref_flyteidl.admin.Execution`." - operationId: "TerminateExecution2" - parameters: - - name: "id.org" - in: "path" - description: "Optional, org key applied to the resource." - required: true - type: "string" - x-exportParamName: "IdOrg" - - name: "id.project" - in: "path" - description: "Name of the project the resource belongs to." - required: true - type: "string" - x-exportParamName: "IdProject" - - name: "id.domain" - in: "path" - description: "Name of the domain the resource belongs to.\nA domain can be\ - \ considered as a subset within a specific project." - required: true - type: "string" - x-exportParamName: "IdDomain" - - name: "id.name" - in: "path" - description: "User or system provided value for the resource." - required: true - type: "string" - x-exportParamName: "IdName" - - in: "body" - name: "body" - required: true - schema: - $ref: "#/definitions/adminExecutionTerminateRequest" - x-exportParamName: "Body" - responses: - 200: - description: "A successful response." - schema: - $ref: "#/definitions/adminExecutionTerminateResponse" /api/v1/data/executions/{id.project}/{id.domain}/{id.name}: get: tags: @@ -1371,6 +1396,78 @@ paths: description: "A successful response." schema: $ref: "#/definitions/adminNodeExecutionEventResponse" + /api/v1/events/org/{event.execution_id.org}/workflows: + post: + tags: + - "AdminService" + summary: "Indicates a :ref:`ref_flyteidl.event.WorkflowExecutionEvent` has occurred." + operationId: "CreateWorkflowEvent2" + parameters: + - name: "event.execution_id.org" + in: "path" + description: "Optional, org key applied to the resource." + required: true + type: "string" + x-exportParamName: "EventExecutionIdOrg" + - in: "body" + name: "body" + required: true + schema: + $ref: "#/definitions/adminWorkflowExecutionEventRequest" + x-exportParamName: "Body" + responses: + 200: + description: "A successful response." + schema: + $ref: "#/definitions/adminWorkflowExecutionEventResponse" + /api/v1/events/org/{event.id.execution_id.org}/nodes: + post: + tags: + - "AdminService" + summary: "Indicates a :ref:`ref_flyteidl.event.NodeExecutionEvent` has occurred." + operationId: "CreateNodeEvent2" + parameters: + - name: "event.id.execution_id.org" + in: "path" + description: "Optional, org key applied to the resource." + required: true + type: "string" + x-exportParamName: "EventIdExecutionIdOrg" + - in: "body" + name: "body" + required: true + schema: + $ref: "#/definitions/adminNodeExecutionEventRequest" + x-exportParamName: "Body" + responses: + 200: + description: "A successful response." + schema: + $ref: "#/definitions/adminNodeExecutionEventResponse" + /api/v1/events/org/{event.parent_node_execution_id.execution_id.org}/tasks: + post: + tags: + - "AdminService" + summary: "Indicates a :ref:`ref_flyteidl.event.TaskExecutionEvent` has occurred." + operationId: "CreateTaskEvent2" + parameters: + - name: "event.parent_node_execution_id.execution_id.org" + in: "path" + description: "Optional, org key applied to the resource." + required: true + type: "string" + x-exportParamName: "EventParentNodeExecutionIdExecutionIdOrg" + - in: "body" + name: "body" + required: true + schema: + $ref: "#/definitions/adminTaskExecutionEventRequest" + x-exportParamName: "Body" + responses: + 200: + description: "A successful response." + schema: + $ref: "#/definitions/adminTaskExecutionEventResponse" /api/v1/events/tasks: post: tags: @@ -1425,6 +1522,61 @@ paths: description: "A successful response." schema: $ref: "#/definitions/adminExecutionCreateResponse" + /api/v1/executions/org/{id.org}/recover: + post: + tags: + - "AdminService" + summary: "Recreates a previously-run workflow execution that will only start\ + \ executing from the last known failure point.\nIn Recover mode, users cannot\ + \ change any input parameters or update the version of the execution.\nThis\ + \ is extremely useful to recover from system errors and byzantine faults like\ + \ - Loss of K8s cluster, bugs in platform or instability, machine failures,\n\ + downstream system failures (downstream services), or simply to recover executions\ + \ that failed because of retry exhaustion and should complete if tried again.\n\ + See :ref:`ref_flyteidl.admin.ExecutionRecoverRequest` for more details." + operationId: "RecoverExecution2" + parameters: + - name: "id.org" + in: "path" + description: "Optional, org key applied to the resource." + required: true + type: "string" + x-exportParamName: "IdOrg" + - in: "body" + name: "body" + required: true + schema: + $ref: "#/definitions/adminExecutionRecoverRequest" + x-exportParamName: "Body" + responses: + 200: + description: "A successful response." + schema: + $ref: "#/definitions/adminExecutionCreateResponse" + /api/v1/executions/org/{id.org}/relaunch: + post: + tags: + - "AdminService" + summary: "Triggers the creation of an identical :ref:`ref_flyteidl.admin.Execution`" + operationId: "RelaunchExecution2" + parameters: + - name: "id.org" + in: "path" + description: "Optional, org key applied to the resource." + required: true + type: "string" + x-exportParamName: "IdOrg" + - in: "body" + name: "body" + required: true + schema: + $ref: "#/definitions/adminExecutionRelaunchRequest" + x-exportParamName: "Body" + responses: + 200: + description: "A successful response." + schema: + $ref: "#/definitions/adminExecutionCreateResponse" /api/v1/executions/org/{id.org}/{id.project}/{id.domain}: get: tags: @@ -1588,6 +1740,72 @@ paths: description: "A successful response." schema: $ref: "#/definitions/adminExecutionUpdateResponse" + delete: + tags: + - "AdminService" + summary: "Terminates an in-progress :ref:`ref_flyteidl.admin.Execution`." + operationId: "TerminateExecution2" + parameters: + - name: "id.org" + in: "path" + description: "Optional, org key applied to the resource." + required: true + type: "string" + x-exportParamName: "IdOrg" + - name: "id.project" + in: "path" + description: "Name of the project the resource belongs to." + required: true + type: "string" + x-exportParamName: "IdProject" + - name: "id.domain" + in: "path" + description: "Name of the domain the resource belongs to.\nA domain can be\ + \ considered as a subset within a specific project." + required: true + type: "string" + x-exportParamName: "IdDomain" + - name: "id.name" + in: "path" + description: "User or system provided value for the resource." + required: true + type: "string" + x-exportParamName: "IdName" + - in: "body" + name: "body" + required: true + schema: + $ref: "#/definitions/adminExecutionTerminateRequest" + x-exportParamName: "Body" + responses: + 200: + description: "A successful response." + schema: + $ref: "#/definitions/adminExecutionTerminateResponse" + /api/v1/executions/org/{org}: + put: + tags: + - "AdminService" + summary: "Triggers the creation of a :ref:`ref_flyteidl.admin.Execution`" + operationId: "CreateExecution2" + parameters: + - name: "org" + in: "path" + description: "Optional, org key applied to the resource." + required: true + type: "string" + x-exportParamName: "Org" + - in: "body" + name: "body" + required: true + schema: + $ref: "#/definitions/adminExecutionCreateRequest" + x-exportParamName: "Body" + responses: + 200: + description: "A successful response." + schema: + $ref: "#/definitions/adminExecutionCreateResponse" /api/v1/executions/recover: post: tags: @@ -1995,6 +2213,30 @@ paths: description: "A successful response." schema: $ref: "#/definitions/adminLaunchPlanCreateResponse" + /api/v1/launch_plans/org/{id.org}: + post: + tags: + - "AdminService" + summary: "Create and upload a :ref:`ref_flyteidl.admin.LaunchPlan` definition" + operationId: "CreateLaunchPlan2" + parameters: + - name: "id.org" + in: "path" + description: "Optional, org key applied to the resource." + required: true + type: "string" + x-exportParamName: "IdOrg" + - in: "body" + name: "body" + required: true + schema: + $ref: "#/definitions/adminLaunchPlanCreateRequest" + x-exportParamName: "Body" + responses: + 200: + description: "A successful response." + schema: + $ref: "#/definitions/adminLaunchPlanCreateResponse" /api/v1/launch_plans/org/{id.org}/{id.project}/{id.domain}: get: tags: @@ -2550,6 +2792,59 @@ paths: \ for a specific resource type." operationId: "ListMatchableAttributes" parameters: + - name: "resource_type" + in: "query" + description: "+required.\n\n - TASK_RESOURCE: Applies to customizable task\ + \ resource requests and limits.\n - CLUSTER_RESOURCE: Applies to configuring\ + \ templated kubernetes cluster resources.\n - EXECUTION_QUEUE: Configures\ + \ task and dynamic task execution queue assignment.\n - EXECUTION_CLUSTER_LABEL:\ + \ Configures the K8s cluster label to be used for execution to be run\n\ + \ - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service\ + \ when undefined in an execution spec.\n - PLUGIN_OVERRIDE: Selects configurable\ + \ plugin implementation behavior for a given task type.\n - WORKFLOW_EXECUTION_CONFIG:\ + \ Adds defaults for customizable workflow-execution specifications and overrides.\n\ + \ - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which\ + \ this execution should run." + required: false + type: "string" + default: "TASK_RESOURCE" + enum: + - "TASK_RESOURCE" + - "CLUSTER_RESOURCE" + - "EXECUTION_QUEUE" + - "EXECUTION_CLUSTER_LABEL" + - "QUALITY_OF_SERVICE_SPECIFICATION" + - "PLUGIN_OVERRIDE" + - "WORKFLOW_EXECUTION_CONFIG" + - "CLUSTER_ASSIGNMENT" + x-exportParamName: "ResourceType" + x-optionalDataType: "String" + - name: "org" + in: "query" + description: "Optional, org filter applied to list project requests." + required: false + type: "string" + x-exportParamName: "Org" + x-optionalDataType: "String" + responses: + 200: + description: "A successful response." + schema: + $ref: "#/definitions/adminListMatchableAttributesResponse" + /api/v1/matchable_attributes/org/{org}: + get: + tags: + - "AdminService" + summary: "Lists custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`\ + \ for a specific resource type." + operationId: "ListMatchableAttributes2" + parameters: + - name: "org" + in: "path" + description: "Optional, org filter applied to list project requests." + required: true + type: "string" + x-exportParamName: "Org" - name: "resource_type" in: "query" description: "+required.\n\n - TASK_RESOURCE: Applies to customizable task\ @@ -3850,6 +4145,13 @@ paths: - "ASCENDING" x-exportParamName: "SortByDirection" x-optionalDataType: "String" + - name: "org" + in: "query" + description: "Optional, org filter applied to list project requests." + required: false + type: "string" + x-exportParamName: "Org" + x-optionalDataType: "String" responses: 200: description: "A successful response." @@ -3872,6 +4174,68 @@ paths: description: "A successful response." schema: $ref: "#/definitions/adminProjectRegisterResponse" + /api/v1/projects/org/{org}: + get: + tags: + - "AdminService" + summary: "Fetches a list of :ref:`ref_flyteidl.admin.Project`" + operationId: "ListProjects2" + parameters: + - name: "org" + in: "path" + description: "Optional, org filter applied to list project requests." + required: true + type: "string" + x-exportParamName: "Org" + - name: "limit" + in: "query" + description: "Indicates the number of projects to be returned.\n+required." + required: false + type: "integer" + format: "int64" + x-exportParamName: "Limit" + x-optionalDataType: "Int64" + - name: "token" + in: "query" + description: "In the case of multiple pages of results, this server-provided\ + \ token can be used to fetch the next page\nin a query.\n+optional." + required: false + type: "string" + x-exportParamName: "Token" + x-optionalDataType: "String" + - name: "filters" + in: "query" + description: "Indicates a list of filters passed as string.\nMore info on\ + \ constructing filters : \n+optional." + required: false + type: "string" + x-exportParamName: "Filters" + x-optionalDataType: "String" + - name: "sort_by.key" + in: "query" + description: "Indicates an attribute to sort the response values.\n+required." + required: false + type: "string" + x-exportParamName: "SortByKey" + x-optionalDataType: "String" + - name: "sort_by.direction" + in: "query" + description: "Indicates the direction to apply sort key for response values.\n\ + +optional.\n\n - DESCENDING: By default, fields are sorted in descending\ + \ order." + required: false + type: "string" + default: "DESCENDING" + enum: + - "DESCENDING" + - "ASCENDING" + x-exportParamName: "SortByDirection" + x-optionalDataType: "String" + responses: + 200: + description: "A successful response." + schema: + $ref: "#/definitions/adminProjects" /api/v1/projects/org/{org}/{id}: put: tags: @@ -3904,6 +4268,30 @@ paths: description: "A successful response." schema: $ref: "#/definitions/adminProjectUpdateResponse" + /api/v1/projects/org/{project.org}: + post: + tags: + - "AdminService" + summary: "Registers a :ref:`ref_flyteidl.admin.Project` with the Flyte deployment." + operationId: "RegisterProject2" + parameters: + - name: "project.org" + in: "path" + description: "Optional, org key applied to the resource." + required: true + type: "string" + x-exportParamName: "ProjectOrg" + - in: "body" + name: "body" + required: true + schema: + $ref: "#/definitions/adminProjectRegisterRequest" + x-exportParamName: "Body" + responses: + 200: + description: "A successful response." + schema: + $ref: "#/definitions/adminProjectRegisterResponse" /api/v1/projects/{id}: put: tags: @@ -4398,6 +4786,30 @@ paths: description: "A successful response." schema: $ref: "#/definitions/flyteidladminTaskCreateResponse" + /api/v1/tasks/org/{id.org}: + post: + tags: + - "AdminService" + summary: "Create and upload a :ref:`ref_flyteidl.admin.Task` definition" + operationId: "CreateTask2" + parameters: + - name: "id.org" + in: "path" + description: "Optional, org key applied to the resource." + required: true + type: "string" + x-exportParamName: "IdOrg" + - in: "body" + name: "body" + required: true + schema: + $ref: "#/definitions/flyteidladminTaskCreateRequest" + x-exportParamName: "Body" + responses: + 200: + description: "A successful response." + schema: + $ref: "#/definitions/flyteidladminTaskCreateResponse" /api/v1/tasks/org/{id.org}/{id.project}/{id.domain}: get: tags: @@ -5338,6 +5750,30 @@ paths: description: "A successful response." schema: $ref: "#/definitions/adminWorkflowCreateResponse" + /api/v1/workflows/org/{id.org}: + post: + tags: + - "AdminService" + summary: "Create and upload a :ref:`ref_flyteidl.admin.Workflow` definition" + operationId: "CreateWorkflow2" + parameters: + - name: "id.org" + in: "path" + description: "Optional, org key applied to the resource." + required: true + type: "string" + x-exportParamName: "IdOrg" + - in: "body" + name: "body" + required: true + schema: + $ref: "#/definitions/adminWorkflowCreateRequest" + x-exportParamName: "Body" + responses: + 200: + description: "A successful response." + schema: + $ref: "#/definitions/adminWorkflowCreateResponse" /api/v1/workflows/org/{id.org}/{id.project}/{id.domain}: get: tags: diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/api_admin_service.go b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/api_admin_service.go index e106763b6c..92678dc67b 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/api_admin_service.go +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/api_admin_service.go @@ -116,23 +116,25 @@ func (a *AdminServiceApiService) CreateExecution(ctx context.Context, body Admin } /* -AdminServiceApiService Create and upload a :ref:`ref_flyteidl.admin.LaunchPlan` definition +AdminServiceApiService Triggers the creation of a :ref:`ref_flyteidl.admin.Execution` * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param org Optional, org key applied to the resource. * @param body -@return AdminLaunchPlanCreateResponse +@return AdminExecutionCreateResponse */ -func (a *AdminServiceApiService) CreateLaunchPlan(ctx context.Context, body AdminLaunchPlanCreateRequest) (AdminLaunchPlanCreateResponse, *http.Response, error) { +func (a *AdminServiceApiService) CreateExecution2(ctx context.Context, org string, body AdminExecutionCreateRequest) (AdminExecutionCreateResponse, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Post") + localVarHttpMethod = strings.ToUpper("Put") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte - localVarReturnValue AdminLaunchPlanCreateResponse + localVarReturnValue AdminExecutionCreateResponse ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/api/v1/launch_plans" + localVarPath := a.client.cfg.BasePath + "/api/v1/executions/org/{org}" + localVarPath = strings.Replace(localVarPath, "{"+"org"+"}", fmt.Sprintf("%v", org), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} @@ -188,7 +190,7 @@ func (a *AdminServiceApiService) CreateLaunchPlan(ctx context.Context, body Admi } if localVarHttpResponse.StatusCode == 200 { - var v AdminLaunchPlanCreateResponse + var v AdminExecutionCreateResponse err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); if err != nil { newErr.error = err.Error() @@ -205,23 +207,23 @@ func (a *AdminServiceApiService) CreateLaunchPlan(ctx context.Context, body Admi } /* -AdminServiceApiService Indicates a :ref:`ref_flyteidl.event.NodeExecutionEvent` has occurred. +AdminServiceApiService Create and upload a :ref:`ref_flyteidl.admin.LaunchPlan` definition * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param body -@return AdminNodeExecutionEventResponse +@return AdminLaunchPlanCreateResponse */ -func (a *AdminServiceApiService) CreateNodeEvent(ctx context.Context, body AdminNodeExecutionEventRequest) (AdminNodeExecutionEventResponse, *http.Response, error) { +func (a *AdminServiceApiService) CreateLaunchPlan(ctx context.Context, body AdminLaunchPlanCreateRequest) (AdminLaunchPlanCreateResponse, *http.Response, error) { var ( localVarHttpMethod = strings.ToUpper("Post") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte - localVarReturnValue AdminNodeExecutionEventResponse + localVarReturnValue AdminLaunchPlanCreateResponse ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/api/v1/events/nodes" + localVarPath := a.client.cfg.BasePath + "/api/v1/launch_plans" localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} @@ -277,7 +279,7 @@ func (a *AdminServiceApiService) CreateNodeEvent(ctx context.Context, body Admin } if localVarHttpResponse.StatusCode == 200 { - var v AdminNodeExecutionEventResponse + var v AdminLaunchPlanCreateResponse err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); if err != nil { newErr.error = err.Error() @@ -294,23 +296,25 @@ func (a *AdminServiceApiService) CreateNodeEvent(ctx context.Context, body Admin } /* -AdminServiceApiService Create and upload a :ref:`ref_flyteidl.admin.Task` definition +AdminServiceApiService Create and upload a :ref:`ref_flyteidl.admin.LaunchPlan` definition * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param idOrg Optional, org key applied to the resource. * @param body -@return FlyteidladminTaskCreateResponse +@return AdminLaunchPlanCreateResponse */ -func (a *AdminServiceApiService) CreateTask(ctx context.Context, body FlyteidladminTaskCreateRequest) (FlyteidladminTaskCreateResponse, *http.Response, error) { +func (a *AdminServiceApiService) CreateLaunchPlan2(ctx context.Context, idOrg string, body AdminLaunchPlanCreateRequest) (AdminLaunchPlanCreateResponse, *http.Response, error) { var ( localVarHttpMethod = strings.ToUpper("Post") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte - localVarReturnValue FlyteidladminTaskCreateResponse + localVarReturnValue AdminLaunchPlanCreateResponse ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/api/v1/tasks" + localVarPath := a.client.cfg.BasePath + "/api/v1/launch_plans/org/{id.org}" + localVarPath = strings.Replace(localVarPath, "{"+"id.org"+"}", fmt.Sprintf("%v", idOrg), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} @@ -366,7 +370,7 @@ func (a *AdminServiceApiService) CreateTask(ctx context.Context, body Flyteidlad } if localVarHttpResponse.StatusCode == 200 { - var v FlyteidladminTaskCreateResponse + var v AdminLaunchPlanCreateResponse err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); if err != nil { newErr.error = err.Error() @@ -383,23 +387,23 @@ func (a *AdminServiceApiService) CreateTask(ctx context.Context, body Flyteidlad } /* -AdminServiceApiService Indicates a :ref:`ref_flyteidl.event.TaskExecutionEvent` has occurred. +AdminServiceApiService Indicates a :ref:`ref_flyteidl.event.NodeExecutionEvent` has occurred. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param body -@return AdminTaskExecutionEventResponse +@return AdminNodeExecutionEventResponse */ -func (a *AdminServiceApiService) CreateTaskEvent(ctx context.Context, body AdminTaskExecutionEventRequest) (AdminTaskExecutionEventResponse, *http.Response, error) { +func (a *AdminServiceApiService) CreateNodeEvent(ctx context.Context, body AdminNodeExecutionEventRequest) (AdminNodeExecutionEventResponse, *http.Response, error) { var ( localVarHttpMethod = strings.ToUpper("Post") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte - localVarReturnValue AdminTaskExecutionEventResponse + localVarReturnValue AdminNodeExecutionEventResponse ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/api/v1/events/tasks" + localVarPath := a.client.cfg.BasePath + "/api/v1/events/nodes" localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} @@ -455,7 +459,7 @@ func (a *AdminServiceApiService) CreateTaskEvent(ctx context.Context, body Admin } if localVarHttpResponse.StatusCode == 200 { - var v AdminTaskExecutionEventResponse + var v AdminNodeExecutionEventResponse err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); if err != nil { newErr.error = err.Error() @@ -472,23 +476,25 @@ func (a *AdminServiceApiService) CreateTaskEvent(ctx context.Context, body Admin } /* -AdminServiceApiService Create and upload a :ref:`ref_flyteidl.admin.Workflow` definition +AdminServiceApiService Indicates a :ref:`ref_flyteidl.event.NodeExecutionEvent` has occurred. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param eventIdExecutionIdOrg Optional, org key applied to the resource. * @param body -@return AdminWorkflowCreateResponse +@return AdminNodeExecutionEventResponse */ -func (a *AdminServiceApiService) CreateWorkflow(ctx context.Context, body AdminWorkflowCreateRequest) (AdminWorkflowCreateResponse, *http.Response, error) { +func (a *AdminServiceApiService) CreateNodeEvent2(ctx context.Context, eventIdExecutionIdOrg string, body AdminNodeExecutionEventRequest) (AdminNodeExecutionEventResponse, *http.Response, error) { var ( localVarHttpMethod = strings.ToUpper("Post") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte - localVarReturnValue AdminWorkflowCreateResponse + localVarReturnValue AdminNodeExecutionEventResponse ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/api/v1/workflows" + localVarPath := a.client.cfg.BasePath + "/api/v1/events/org/{event.id.execution_id.org}/nodes" + localVarPath = strings.Replace(localVarPath, "{"+"event.id.execution_id.org"+"}", fmt.Sprintf("%v", eventIdExecutionIdOrg), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} @@ -544,7 +550,7 @@ func (a *AdminServiceApiService) CreateWorkflow(ctx context.Context, body AdminW } if localVarHttpResponse.StatusCode == 200 { - var v AdminWorkflowCreateResponse + var v AdminNodeExecutionEventResponse err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); if err != nil { newErr.error = err.Error() @@ -561,23 +567,23 @@ func (a *AdminServiceApiService) CreateWorkflow(ctx context.Context, body AdminW } /* -AdminServiceApiService Indicates a :ref:`ref_flyteidl.event.WorkflowExecutionEvent` has occurred. +AdminServiceApiService Create and upload a :ref:`ref_flyteidl.admin.Task` definition * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param body -@return AdminWorkflowExecutionEventResponse +@return FlyteidladminTaskCreateResponse */ -func (a *AdminServiceApiService) CreateWorkflowEvent(ctx context.Context, body AdminWorkflowExecutionEventRequest) (AdminWorkflowExecutionEventResponse, *http.Response, error) { +func (a *AdminServiceApiService) CreateTask(ctx context.Context, body FlyteidladminTaskCreateRequest) (FlyteidladminTaskCreateResponse, *http.Response, error) { var ( localVarHttpMethod = strings.ToUpper("Post") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte - localVarReturnValue AdminWorkflowExecutionEventResponse + localVarReturnValue FlyteidladminTaskCreateResponse ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/api/v1/events/workflows" + localVarPath := a.client.cfg.BasePath + "/api/v1/tasks" localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} @@ -633,7 +639,7 @@ func (a *AdminServiceApiService) CreateWorkflowEvent(ctx context.Context, body A } if localVarHttpResponse.StatusCode == 200 { - var v AdminWorkflowExecutionEventResponse + var v FlyteidladminTaskCreateResponse err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); if err != nil { newErr.error = err.Error() @@ -650,25 +656,25 @@ func (a *AdminServiceApiService) CreateWorkflowEvent(ctx context.Context, body A } /* -AdminServiceApiService Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. +AdminServiceApiService Create and upload a :ref:`ref_flyteidl.admin.Task` definition * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @param project Unique project id which this set of attributes references. +required + * @param idOrg Optional, org key applied to the resource. * @param body -@return AdminProjectAttributesDeleteResponse +@return FlyteidladminTaskCreateResponse */ -func (a *AdminServiceApiService) DeleteProjectAttributes(ctx context.Context, project string, body AdminProjectAttributesDeleteRequest) (AdminProjectAttributesDeleteResponse, *http.Response, error) { +func (a *AdminServiceApiService) CreateTask2(ctx context.Context, idOrg string, body FlyteidladminTaskCreateRequest) (FlyteidladminTaskCreateResponse, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Delete") + localVarHttpMethod = strings.ToUpper("Post") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte - localVarReturnValue AdminProjectAttributesDeleteResponse + localVarReturnValue FlyteidladminTaskCreateResponse ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/api/v1/project_attributes/{project}" - localVarPath = strings.Replace(localVarPath, "{"+"project"+"}", fmt.Sprintf("%v", project), -1) + localVarPath := a.client.cfg.BasePath + "/api/v1/tasks/org/{id.org}" + localVarPath = strings.Replace(localVarPath, "{"+"id.org"+"}", fmt.Sprintf("%v", idOrg), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} @@ -724,7 +730,7 @@ func (a *AdminServiceApiService) DeleteProjectAttributes(ctx context.Context, pr } if localVarHttpResponse.StatusCode == 200 { - var v AdminProjectAttributesDeleteResponse + var v FlyteidladminTaskCreateResponse err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); if err != nil { newErr.error = err.Error() @@ -741,27 +747,23 @@ func (a *AdminServiceApiService) DeleteProjectAttributes(ctx context.Context, pr } /* -AdminServiceApiService Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. +AdminServiceApiService Indicates a :ref:`ref_flyteidl.event.TaskExecutionEvent` has occurred. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @param org Optional, org key applied to the project. - * @param project Unique project id which this set of attributes references. +required * @param body -@return AdminProjectAttributesDeleteResponse +@return AdminTaskExecutionEventResponse */ -func (a *AdminServiceApiService) DeleteProjectAttributes2(ctx context.Context, org string, project string, body AdminProjectAttributesDeleteRequest) (AdminProjectAttributesDeleteResponse, *http.Response, error) { +func (a *AdminServiceApiService) CreateTaskEvent(ctx context.Context, body AdminTaskExecutionEventRequest) (AdminTaskExecutionEventResponse, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Delete") + localVarHttpMethod = strings.ToUpper("Post") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte - localVarReturnValue AdminProjectAttributesDeleteResponse + localVarReturnValue AdminTaskExecutionEventResponse ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/api/v1/project_domain_attributes/org/{org}/{project}" - localVarPath = strings.Replace(localVarPath, "{"+"org"+"}", fmt.Sprintf("%v", org), -1) - localVarPath = strings.Replace(localVarPath, "{"+"project"+"}", fmt.Sprintf("%v", project), -1) + localVarPath := a.client.cfg.BasePath + "/api/v1/events/tasks" localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} @@ -817,7 +819,7 @@ func (a *AdminServiceApiService) DeleteProjectAttributes2(ctx context.Context, o } if localVarHttpResponse.StatusCode == 200 { - var v AdminProjectAttributesDeleteResponse + var v AdminTaskExecutionEventResponse err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); if err != nil { newErr.error = err.Error() @@ -834,27 +836,25 @@ func (a *AdminServiceApiService) DeleteProjectAttributes2(ctx context.Context, o } /* -AdminServiceApiService Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. +AdminServiceApiService Indicates a :ref:`ref_flyteidl.event.TaskExecutionEvent` has occurred. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @param project Unique project id which this set of attributes references. +required - * @param domain Unique domain id which this set of attributes references. +required + * @param eventParentNodeExecutionIdExecutionIdOrg Optional, org key applied to the resource. * @param body -@return AdminProjectDomainAttributesDeleteResponse +@return AdminTaskExecutionEventResponse */ -func (a *AdminServiceApiService) DeleteProjectDomainAttributes(ctx context.Context, project string, domain string, body AdminProjectDomainAttributesDeleteRequest) (AdminProjectDomainAttributesDeleteResponse, *http.Response, error) { +func (a *AdminServiceApiService) CreateTaskEvent2(ctx context.Context, eventParentNodeExecutionIdExecutionIdOrg string, body AdminTaskExecutionEventRequest) (AdminTaskExecutionEventResponse, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Delete") + localVarHttpMethod = strings.ToUpper("Post") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte - localVarReturnValue AdminProjectDomainAttributesDeleteResponse + localVarReturnValue AdminTaskExecutionEventResponse ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/api/v1/project_domain_attributes/{project}/{domain}" - localVarPath = strings.Replace(localVarPath, "{"+"project"+"}", fmt.Sprintf("%v", project), -1) - localVarPath = strings.Replace(localVarPath, "{"+"domain"+"}", fmt.Sprintf("%v", domain), -1) + localVarPath := a.client.cfg.BasePath + "/api/v1/events/org/{event.parent_node_execution_id.execution_id.org}/tasks" + localVarPath = strings.Replace(localVarPath, "{"+"event.parent_node_execution_id.execution_id.org"+"}", fmt.Sprintf("%v", eventParentNodeExecutionIdExecutionIdOrg), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} @@ -910,7 +910,7 @@ func (a *AdminServiceApiService) DeleteProjectDomainAttributes(ctx context.Conte } if localVarHttpResponse.StatusCode == 200 { - var v AdminProjectDomainAttributesDeleteResponse + var v AdminTaskExecutionEventResponse err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); if err != nil { newErr.error = err.Error() @@ -927,29 +927,23 @@ func (a *AdminServiceApiService) DeleteProjectDomainAttributes(ctx context.Conte } /* -AdminServiceApiService Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. +AdminServiceApiService Create and upload a :ref:`ref_flyteidl.admin.Workflow` definition * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @param org Optional, org key applied to the attributes. - * @param project Unique project id which this set of attributes references. +required - * @param domain Unique domain id which this set of attributes references. +required * @param body -@return AdminProjectDomainAttributesDeleteResponse +@return AdminWorkflowCreateResponse */ -func (a *AdminServiceApiService) DeleteProjectDomainAttributes2(ctx context.Context, org string, project string, domain string, body AdminProjectDomainAttributesDeleteRequest) (AdminProjectDomainAttributesDeleteResponse, *http.Response, error) { +func (a *AdminServiceApiService) CreateWorkflow(ctx context.Context, body AdminWorkflowCreateRequest) (AdminWorkflowCreateResponse, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Delete") + localVarHttpMethod = strings.ToUpper("Post") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte - localVarReturnValue AdminProjectDomainAttributesDeleteResponse + localVarReturnValue AdminWorkflowCreateResponse ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/api/v1/project_domain_attributes/org/{org}/{project}/{domain}" - localVarPath = strings.Replace(localVarPath, "{"+"org"+"}", fmt.Sprintf("%v", org), -1) - localVarPath = strings.Replace(localVarPath, "{"+"project"+"}", fmt.Sprintf("%v", project), -1) - localVarPath = strings.Replace(localVarPath, "{"+"domain"+"}", fmt.Sprintf("%v", domain), -1) + localVarPath := a.client.cfg.BasePath + "/api/v1/workflows" localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} @@ -1005,7 +999,7 @@ func (a *AdminServiceApiService) DeleteProjectDomainAttributes2(ctx context.Cont } if localVarHttpResponse.StatusCode == 200 { - var v AdminProjectDomainAttributesDeleteResponse + var v AdminWorkflowCreateResponse err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); if err != nil { newErr.error = err.Error() @@ -1022,29 +1016,25 @@ func (a *AdminServiceApiService) DeleteProjectDomainAttributes2(ctx context.Cont } /* -AdminServiceApiService Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. +AdminServiceApiService Create and upload a :ref:`ref_flyteidl.admin.Workflow` definition * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @param project Unique project id which this set of attributes references. +required - * @param domain Unique domain id which this set of attributes references. +required - * @param workflow Workflow name which this set of attributes references. +required + * @param idOrg Optional, org key applied to the resource. * @param body -@return AdminWorkflowAttributesDeleteResponse +@return AdminWorkflowCreateResponse */ -func (a *AdminServiceApiService) DeleteWorkflowAttributes(ctx context.Context, project string, domain string, workflow string, body AdminWorkflowAttributesDeleteRequest) (AdminWorkflowAttributesDeleteResponse, *http.Response, error) { +func (a *AdminServiceApiService) CreateWorkflow2(ctx context.Context, idOrg string, body AdminWorkflowCreateRequest) (AdminWorkflowCreateResponse, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Delete") + localVarHttpMethod = strings.ToUpper("Post") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte - localVarReturnValue AdminWorkflowAttributesDeleteResponse + localVarReturnValue AdminWorkflowCreateResponse ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/api/v1/workflow_attributes/{project}/{domain}/{workflow}" - localVarPath = strings.Replace(localVarPath, "{"+"project"+"}", fmt.Sprintf("%v", project), -1) - localVarPath = strings.Replace(localVarPath, "{"+"domain"+"}", fmt.Sprintf("%v", domain), -1) - localVarPath = strings.Replace(localVarPath, "{"+"workflow"+"}", fmt.Sprintf("%v", workflow), -1) + localVarPath := a.client.cfg.BasePath + "/api/v1/workflows/org/{id.org}" + localVarPath = strings.Replace(localVarPath, "{"+"id.org"+"}", fmt.Sprintf("%v", idOrg), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} @@ -1100,7 +1090,7 @@ func (a *AdminServiceApiService) DeleteWorkflowAttributes(ctx context.Context, p } if localVarHttpResponse.StatusCode == 200 { - var v AdminWorkflowAttributesDeleteResponse + var v AdminWorkflowCreateResponse err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); if err != nil { newErr.error = err.Error() @@ -1117,31 +1107,23 @@ func (a *AdminServiceApiService) DeleteWorkflowAttributes(ctx context.Context, p } /* -AdminServiceApiService Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. +AdminServiceApiService Indicates a :ref:`ref_flyteidl.event.WorkflowExecutionEvent` has occurred. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @param org Optional, org key applied to the attributes. - * @param project Unique project id which this set of attributes references. +required - * @param domain Unique domain id which this set of attributes references. +required - * @param workflow Workflow name which this set of attributes references. +required * @param body -@return AdminWorkflowAttributesDeleteResponse +@return AdminWorkflowExecutionEventResponse */ -func (a *AdminServiceApiService) DeleteWorkflowAttributes2(ctx context.Context, org string, project string, domain string, workflow string, body AdminWorkflowAttributesDeleteRequest) (AdminWorkflowAttributesDeleteResponse, *http.Response, error) { +func (a *AdminServiceApiService) CreateWorkflowEvent(ctx context.Context, body AdminWorkflowExecutionEventRequest) (AdminWorkflowExecutionEventResponse, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Delete") + localVarHttpMethod = strings.ToUpper("Post") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte - localVarReturnValue AdminWorkflowAttributesDeleteResponse + localVarReturnValue AdminWorkflowExecutionEventResponse ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/api/v1/workflow_attributes/org/{org}/{project}/{domain}/{workflow}" - localVarPath = strings.Replace(localVarPath, "{"+"org"+"}", fmt.Sprintf("%v", org), -1) - localVarPath = strings.Replace(localVarPath, "{"+"project"+"}", fmt.Sprintf("%v", project), -1) - localVarPath = strings.Replace(localVarPath, "{"+"domain"+"}", fmt.Sprintf("%v", domain), -1) - localVarPath = strings.Replace(localVarPath, "{"+"workflow"+"}", fmt.Sprintf("%v", workflow), -1) + localVarPath := a.client.cfg.BasePath + "/api/v1/events/workflows" localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} @@ -1197,7 +1179,7 @@ func (a *AdminServiceApiService) DeleteWorkflowAttributes2(ctx context.Context, } if localVarHttpResponse.StatusCode == 200 { - var v AdminWorkflowAttributesDeleteResponse + var v AdminWorkflowExecutionEventResponse err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); if err != nil { newErr.error = err.Error() @@ -1214,43 +1196,30 @@ func (a *AdminServiceApiService) DeleteWorkflowAttributes2(ctx context.Context, } /* -AdminServiceApiService Fetch the active version of a :ref:`ref_flyteidl.admin.LaunchPlan`. +AdminServiceApiService Indicates a :ref:`ref_flyteidl.event.WorkflowExecutionEvent` has occurred. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @param idProject Name of the project the resource belongs to. - * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. - * @param idName User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' - * @param optional nil or *GetActiveLaunchPlanOpts - Optional Parameters: - * @param "IdOrg" (optional.String) - Optional, org key applied to the resource. + * @param eventExecutionIdOrg Optional, org key applied to the resource. + * @param body -@return AdminLaunchPlan +@return AdminWorkflowExecutionEventResponse */ - -type GetActiveLaunchPlanOpts struct { - IdOrg optional.String -} - -func (a *AdminServiceApiService) GetActiveLaunchPlan(ctx context.Context, idProject string, idDomain string, idName string, localVarOptionals *GetActiveLaunchPlanOpts) (AdminLaunchPlan, *http.Response, error) { +func (a *AdminServiceApiService) CreateWorkflowEvent2(ctx context.Context, eventExecutionIdOrg string, body AdminWorkflowExecutionEventRequest) (AdminWorkflowExecutionEventResponse, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Get") + localVarHttpMethod = strings.ToUpper("Post") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte - localVarReturnValue AdminLaunchPlan + localVarReturnValue AdminWorkflowExecutionEventResponse ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/api/v1/active_launch_plans/{id.project}/{id.domain}/{id.name}" - localVarPath = strings.Replace(localVarPath, "{"+"id.project"+"}", fmt.Sprintf("%v", idProject), -1) - localVarPath = strings.Replace(localVarPath, "{"+"id.domain"+"}", fmt.Sprintf("%v", idDomain), -1) - localVarPath = strings.Replace(localVarPath, "{"+"id.name"+"}", fmt.Sprintf("%v", idName), -1) + localVarPath := a.client.cfg.BasePath + "/api/v1/events/org/{event.execution_id.org}/workflows" + localVarPath = strings.Replace(localVarPath, "{"+"event.execution_id.org"+"}", fmt.Sprintf("%v", eventExecutionIdOrg), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - if localVarOptionals != nil && localVarOptionals.IdOrg.IsSet() { - localVarQueryParams.Add("id.org", parameterToString(localVarOptionals.IdOrg.Value(), "")) - } // to determine the Content-Type header localVarHttpContentTypes := []string{"application/json"} @@ -1268,6 +1237,8 @@ func (a *AdminServiceApiService) GetActiveLaunchPlan(ctx context.Context, idProj if localVarHttpHeaderAccept != "" { localVarHeaderParams["Accept"] = localVarHttpHeaderAccept } + // body params + localVarPostBody = &body r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) if err != nil { return localVarReturnValue, nil, err @@ -1299,7 +1270,7 @@ func (a *AdminServiceApiService) GetActiveLaunchPlan(ctx context.Context, idProj } if localVarHttpResponse.StatusCode == 200 { - var v AdminLaunchPlan + var v AdminWorkflowExecutionEventResponse err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); if err != nil { newErr.error = err.Error() @@ -1316,30 +1287,25 @@ func (a *AdminServiceApiService) GetActiveLaunchPlan(ctx context.Context, idProj } /* -AdminServiceApiService Fetch the active version of a :ref:`ref_flyteidl.admin.LaunchPlan`. +AdminServiceApiService Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @param idOrg Optional, org key applied to the resource. - * @param idProject Name of the project the resource belongs to. - * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. - * @param idName User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' + * @param project Unique project id which this set of attributes references. +required + * @param body -@return AdminLaunchPlan +@return AdminProjectAttributesDeleteResponse */ -func (a *AdminServiceApiService) GetActiveLaunchPlan2(ctx context.Context, idOrg string, idProject string, idDomain string, idName string) (AdminLaunchPlan, *http.Response, error) { +func (a *AdminServiceApiService) DeleteProjectAttributes(ctx context.Context, project string, body AdminProjectAttributesDeleteRequest) (AdminProjectAttributesDeleteResponse, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Get") + localVarHttpMethod = strings.ToUpper("Delete") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte - localVarReturnValue AdminLaunchPlan + localVarReturnValue AdminProjectAttributesDeleteResponse ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/api/v1/active_launch_plans/org/{id.org}/{id.project}/{id.domain}/{id.name}" - localVarPath = strings.Replace(localVarPath, "{"+"id.org"+"}", fmt.Sprintf("%v", idOrg), -1) - localVarPath = strings.Replace(localVarPath, "{"+"id.project"+"}", fmt.Sprintf("%v", idProject), -1) - localVarPath = strings.Replace(localVarPath, "{"+"id.domain"+"}", fmt.Sprintf("%v", idDomain), -1) - localVarPath = strings.Replace(localVarPath, "{"+"id.name"+"}", fmt.Sprintf("%v", idName), -1) + localVarPath := a.client.cfg.BasePath + "/api/v1/project_attributes/{project}" + localVarPath = strings.Replace(localVarPath, "{"+"project"+"}", fmt.Sprintf("%v", project), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} @@ -1362,6 +1328,8 @@ func (a *AdminServiceApiService) GetActiveLaunchPlan2(ctx context.Context, idOrg if localVarHttpHeaderAccept != "" { localVarHeaderParams["Accept"] = localVarHttpHeaderAccept } + // body params + localVarPostBody = &body r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) if err != nil { return localVarReturnValue, nil, err @@ -1393,7 +1361,7 @@ func (a *AdminServiceApiService) GetActiveLaunchPlan2(ctx context.Context, idOrg } if localVarHttpResponse.StatusCode == 200 { - var v AdminLaunchPlan + var v AdminProjectAttributesDeleteResponse err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); if err != nil { newErr.error = err.Error() @@ -1410,17 +1378,686 @@ func (a *AdminServiceApiService) GetActiveLaunchPlan2(ctx context.Context, idOrg } /* -AdminServiceApiService Fetch a :ref:`ref_flyteidl.admin.DescriptionEntity` object. +AdminServiceApiService Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @param idResourceType Identifies the specific type of resource that this identifier corresponds to. - * @param idProject Name of the project the resource belongs to. - * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. - * @param idName User provided value for the resource. - * @param idVersion Specific version of the resource. - * @param optional nil or *GetDescriptionEntityOpts - Optional Parameters: - * @param "IdOrg" (optional.String) - Optional, org key applied to the resource. + * @param org Optional, org key applied to the project. + * @param project Unique project id which this set of attributes references. +required + * @param body -@return AdminDescriptionEntity +@return AdminProjectAttributesDeleteResponse +*/ +func (a *AdminServiceApiService) DeleteProjectAttributes2(ctx context.Context, org string, project string, body AdminProjectAttributesDeleteRequest) (AdminProjectAttributesDeleteResponse, *http.Response, error) { + var ( + localVarHttpMethod = strings.ToUpper("Delete") + localVarPostBody interface{} + localVarFileName string + localVarFileBytes []byte + localVarReturnValue AdminProjectAttributesDeleteResponse + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath + "/api/v1/project_domain_attributes/org/{org}/{project}" + localVarPath = strings.Replace(localVarPath, "{"+"org"+"}", fmt.Sprintf("%v", org), -1) + localVarPath = strings.Replace(localVarPath, "{"+"project"+"}", fmt.Sprintf("%v", project), -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + // to determine the Content-Type header + localVarHttpContentTypes := []string{"application/json"} + + // set Content-Type header + localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) + if localVarHttpContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHttpContentType + } + + // to determine the Accept header + localVarHttpHeaderAccepts := []string{"application/json"} + + // set Accept header + localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) + if localVarHttpHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + } + // body params + localVarPostBody = &body + r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHttpResponse, err := a.client.callAPI(r) + if err != nil || localVarHttpResponse == nil { + return localVarReturnValue, localVarHttpResponse, err + } + + localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) + localVarHttpResponse.Body.Close() + if err != nil { + return localVarReturnValue, localVarHttpResponse, err + } + + if localVarHttpResponse.StatusCode < 300 { + // If we succeed, return the data, otherwise pass on to decode error. + err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err == nil { + return localVarReturnValue, localVarHttpResponse, err + } + } + + if localVarHttpResponse.StatusCode >= 300 { + newErr := GenericSwaggerError{ + body: localVarBody, + error: localVarHttpResponse.Status, + } + + if localVarHttpResponse.StatusCode == 200 { + var v AdminProjectAttributesDeleteResponse + err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err != nil { + newErr.error = err.Error() + return localVarReturnValue, localVarHttpResponse, newErr + } + newErr.model = v + return localVarReturnValue, localVarHttpResponse, newErr + } + + return localVarReturnValue, localVarHttpResponse, newErr + } + + return localVarReturnValue, localVarHttpResponse, nil +} + +/* +AdminServiceApiService Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. + * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param project Unique project id which this set of attributes references. +required + * @param domain Unique domain id which this set of attributes references. +required + * @param body + +@return AdminProjectDomainAttributesDeleteResponse +*/ +func (a *AdminServiceApiService) DeleteProjectDomainAttributes(ctx context.Context, project string, domain string, body AdminProjectDomainAttributesDeleteRequest) (AdminProjectDomainAttributesDeleteResponse, *http.Response, error) { + var ( + localVarHttpMethod = strings.ToUpper("Delete") + localVarPostBody interface{} + localVarFileName string + localVarFileBytes []byte + localVarReturnValue AdminProjectDomainAttributesDeleteResponse + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath + "/api/v1/project_domain_attributes/{project}/{domain}" + localVarPath = strings.Replace(localVarPath, "{"+"project"+"}", fmt.Sprintf("%v", project), -1) + localVarPath = strings.Replace(localVarPath, "{"+"domain"+"}", fmt.Sprintf("%v", domain), -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + // to determine the Content-Type header + localVarHttpContentTypes := []string{"application/json"} + + // set Content-Type header + localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) + if localVarHttpContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHttpContentType + } + + // to determine the Accept header + localVarHttpHeaderAccepts := []string{"application/json"} + + // set Accept header + localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) + if localVarHttpHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + } + // body params + localVarPostBody = &body + r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHttpResponse, err := a.client.callAPI(r) + if err != nil || localVarHttpResponse == nil { + return localVarReturnValue, localVarHttpResponse, err + } + + localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) + localVarHttpResponse.Body.Close() + if err != nil { + return localVarReturnValue, localVarHttpResponse, err + } + + if localVarHttpResponse.StatusCode < 300 { + // If we succeed, return the data, otherwise pass on to decode error. + err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err == nil { + return localVarReturnValue, localVarHttpResponse, err + } + } + + if localVarHttpResponse.StatusCode >= 300 { + newErr := GenericSwaggerError{ + body: localVarBody, + error: localVarHttpResponse.Status, + } + + if localVarHttpResponse.StatusCode == 200 { + var v AdminProjectDomainAttributesDeleteResponse + err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err != nil { + newErr.error = err.Error() + return localVarReturnValue, localVarHttpResponse, newErr + } + newErr.model = v + return localVarReturnValue, localVarHttpResponse, newErr + } + + return localVarReturnValue, localVarHttpResponse, newErr + } + + return localVarReturnValue, localVarHttpResponse, nil +} + +/* +AdminServiceApiService Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. + * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param org Optional, org key applied to the attributes. + * @param project Unique project id which this set of attributes references. +required + * @param domain Unique domain id which this set of attributes references. +required + * @param body + +@return AdminProjectDomainAttributesDeleteResponse +*/ +func (a *AdminServiceApiService) DeleteProjectDomainAttributes2(ctx context.Context, org string, project string, domain string, body AdminProjectDomainAttributesDeleteRequest) (AdminProjectDomainAttributesDeleteResponse, *http.Response, error) { + var ( + localVarHttpMethod = strings.ToUpper("Delete") + localVarPostBody interface{} + localVarFileName string + localVarFileBytes []byte + localVarReturnValue AdminProjectDomainAttributesDeleteResponse + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath + "/api/v1/project_domain_attributes/org/{org}/{project}/{domain}" + localVarPath = strings.Replace(localVarPath, "{"+"org"+"}", fmt.Sprintf("%v", org), -1) + localVarPath = strings.Replace(localVarPath, "{"+"project"+"}", fmt.Sprintf("%v", project), -1) + localVarPath = strings.Replace(localVarPath, "{"+"domain"+"}", fmt.Sprintf("%v", domain), -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + // to determine the Content-Type header + localVarHttpContentTypes := []string{"application/json"} + + // set Content-Type header + localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) + if localVarHttpContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHttpContentType + } + + // to determine the Accept header + localVarHttpHeaderAccepts := []string{"application/json"} + + // set Accept header + localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) + if localVarHttpHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + } + // body params + localVarPostBody = &body + r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHttpResponse, err := a.client.callAPI(r) + if err != nil || localVarHttpResponse == nil { + return localVarReturnValue, localVarHttpResponse, err + } + + localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) + localVarHttpResponse.Body.Close() + if err != nil { + return localVarReturnValue, localVarHttpResponse, err + } + + if localVarHttpResponse.StatusCode < 300 { + // If we succeed, return the data, otherwise pass on to decode error. + err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err == nil { + return localVarReturnValue, localVarHttpResponse, err + } + } + + if localVarHttpResponse.StatusCode >= 300 { + newErr := GenericSwaggerError{ + body: localVarBody, + error: localVarHttpResponse.Status, + } + + if localVarHttpResponse.StatusCode == 200 { + var v AdminProjectDomainAttributesDeleteResponse + err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err != nil { + newErr.error = err.Error() + return localVarReturnValue, localVarHttpResponse, newErr + } + newErr.model = v + return localVarReturnValue, localVarHttpResponse, newErr + } + + return localVarReturnValue, localVarHttpResponse, newErr + } + + return localVarReturnValue, localVarHttpResponse, nil +} + +/* +AdminServiceApiService Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. + * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param project Unique project id which this set of attributes references. +required + * @param domain Unique domain id which this set of attributes references. +required + * @param workflow Workflow name which this set of attributes references. +required + * @param body + +@return AdminWorkflowAttributesDeleteResponse +*/ +func (a *AdminServiceApiService) DeleteWorkflowAttributes(ctx context.Context, project string, domain string, workflow string, body AdminWorkflowAttributesDeleteRequest) (AdminWorkflowAttributesDeleteResponse, *http.Response, error) { + var ( + localVarHttpMethod = strings.ToUpper("Delete") + localVarPostBody interface{} + localVarFileName string + localVarFileBytes []byte + localVarReturnValue AdminWorkflowAttributesDeleteResponse + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath + "/api/v1/workflow_attributes/{project}/{domain}/{workflow}" + localVarPath = strings.Replace(localVarPath, "{"+"project"+"}", fmt.Sprintf("%v", project), -1) + localVarPath = strings.Replace(localVarPath, "{"+"domain"+"}", fmt.Sprintf("%v", domain), -1) + localVarPath = strings.Replace(localVarPath, "{"+"workflow"+"}", fmt.Sprintf("%v", workflow), -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + // to determine the Content-Type header + localVarHttpContentTypes := []string{"application/json"} + + // set Content-Type header + localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) + if localVarHttpContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHttpContentType + } + + // to determine the Accept header + localVarHttpHeaderAccepts := []string{"application/json"} + + // set Accept header + localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) + if localVarHttpHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + } + // body params + localVarPostBody = &body + r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHttpResponse, err := a.client.callAPI(r) + if err != nil || localVarHttpResponse == nil { + return localVarReturnValue, localVarHttpResponse, err + } + + localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) + localVarHttpResponse.Body.Close() + if err != nil { + return localVarReturnValue, localVarHttpResponse, err + } + + if localVarHttpResponse.StatusCode < 300 { + // If we succeed, return the data, otherwise pass on to decode error. + err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err == nil { + return localVarReturnValue, localVarHttpResponse, err + } + } + + if localVarHttpResponse.StatusCode >= 300 { + newErr := GenericSwaggerError{ + body: localVarBody, + error: localVarHttpResponse.Status, + } + + if localVarHttpResponse.StatusCode == 200 { + var v AdminWorkflowAttributesDeleteResponse + err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err != nil { + newErr.error = err.Error() + return localVarReturnValue, localVarHttpResponse, newErr + } + newErr.model = v + return localVarReturnValue, localVarHttpResponse, newErr + } + + return localVarReturnValue, localVarHttpResponse, newErr + } + + return localVarReturnValue, localVarHttpResponse, nil +} + +/* +AdminServiceApiService Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. + * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param org Optional, org key applied to the attributes. + * @param project Unique project id which this set of attributes references. +required + * @param domain Unique domain id which this set of attributes references. +required + * @param workflow Workflow name which this set of attributes references. +required + * @param body + +@return AdminWorkflowAttributesDeleteResponse +*/ +func (a *AdminServiceApiService) DeleteWorkflowAttributes2(ctx context.Context, org string, project string, domain string, workflow string, body AdminWorkflowAttributesDeleteRequest) (AdminWorkflowAttributesDeleteResponse, *http.Response, error) { + var ( + localVarHttpMethod = strings.ToUpper("Delete") + localVarPostBody interface{} + localVarFileName string + localVarFileBytes []byte + localVarReturnValue AdminWorkflowAttributesDeleteResponse + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath + "/api/v1/workflow_attributes/org/{org}/{project}/{domain}/{workflow}" + localVarPath = strings.Replace(localVarPath, "{"+"org"+"}", fmt.Sprintf("%v", org), -1) + localVarPath = strings.Replace(localVarPath, "{"+"project"+"}", fmt.Sprintf("%v", project), -1) + localVarPath = strings.Replace(localVarPath, "{"+"domain"+"}", fmt.Sprintf("%v", domain), -1) + localVarPath = strings.Replace(localVarPath, "{"+"workflow"+"}", fmt.Sprintf("%v", workflow), -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + // to determine the Content-Type header + localVarHttpContentTypes := []string{"application/json"} + + // set Content-Type header + localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) + if localVarHttpContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHttpContentType + } + + // to determine the Accept header + localVarHttpHeaderAccepts := []string{"application/json"} + + // set Accept header + localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) + if localVarHttpHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + } + // body params + localVarPostBody = &body + r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHttpResponse, err := a.client.callAPI(r) + if err != nil || localVarHttpResponse == nil { + return localVarReturnValue, localVarHttpResponse, err + } + + localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) + localVarHttpResponse.Body.Close() + if err != nil { + return localVarReturnValue, localVarHttpResponse, err + } + + if localVarHttpResponse.StatusCode < 300 { + // If we succeed, return the data, otherwise pass on to decode error. + err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err == nil { + return localVarReturnValue, localVarHttpResponse, err + } + } + + if localVarHttpResponse.StatusCode >= 300 { + newErr := GenericSwaggerError{ + body: localVarBody, + error: localVarHttpResponse.Status, + } + + if localVarHttpResponse.StatusCode == 200 { + var v AdminWorkflowAttributesDeleteResponse + err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err != nil { + newErr.error = err.Error() + return localVarReturnValue, localVarHttpResponse, newErr + } + newErr.model = v + return localVarReturnValue, localVarHttpResponse, newErr + } + + return localVarReturnValue, localVarHttpResponse, newErr + } + + return localVarReturnValue, localVarHttpResponse, nil +} + +/* +AdminServiceApiService Fetch the active version of a :ref:`ref_flyteidl.admin.LaunchPlan`. + * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param idProject Name of the project the resource belongs to. + * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. + * @param idName User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' + * @param optional nil or *GetActiveLaunchPlanOpts - Optional Parameters: + * @param "IdOrg" (optional.String) - Optional, org key applied to the resource. + +@return AdminLaunchPlan +*/ + +type GetActiveLaunchPlanOpts struct { + IdOrg optional.String +} + +func (a *AdminServiceApiService) GetActiveLaunchPlan(ctx context.Context, idProject string, idDomain string, idName string, localVarOptionals *GetActiveLaunchPlanOpts) (AdminLaunchPlan, *http.Response, error) { + var ( + localVarHttpMethod = strings.ToUpper("Get") + localVarPostBody interface{} + localVarFileName string + localVarFileBytes []byte + localVarReturnValue AdminLaunchPlan + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath + "/api/v1/active_launch_plans/{id.project}/{id.domain}/{id.name}" + localVarPath = strings.Replace(localVarPath, "{"+"id.project"+"}", fmt.Sprintf("%v", idProject), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.domain"+"}", fmt.Sprintf("%v", idDomain), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.name"+"}", fmt.Sprintf("%v", idName), -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + if localVarOptionals != nil && localVarOptionals.IdOrg.IsSet() { + localVarQueryParams.Add("id.org", parameterToString(localVarOptionals.IdOrg.Value(), "")) + } + // to determine the Content-Type header + localVarHttpContentTypes := []string{"application/json"} + + // set Content-Type header + localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) + if localVarHttpContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHttpContentType + } + + // to determine the Accept header + localVarHttpHeaderAccepts := []string{"application/json"} + + // set Accept header + localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) + if localVarHttpHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + } + r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHttpResponse, err := a.client.callAPI(r) + if err != nil || localVarHttpResponse == nil { + return localVarReturnValue, localVarHttpResponse, err + } + + localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) + localVarHttpResponse.Body.Close() + if err != nil { + return localVarReturnValue, localVarHttpResponse, err + } + + if localVarHttpResponse.StatusCode < 300 { + // If we succeed, return the data, otherwise pass on to decode error. + err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err == nil { + return localVarReturnValue, localVarHttpResponse, err + } + } + + if localVarHttpResponse.StatusCode >= 300 { + newErr := GenericSwaggerError{ + body: localVarBody, + error: localVarHttpResponse.Status, + } + + if localVarHttpResponse.StatusCode == 200 { + var v AdminLaunchPlan + err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err != nil { + newErr.error = err.Error() + return localVarReturnValue, localVarHttpResponse, newErr + } + newErr.model = v + return localVarReturnValue, localVarHttpResponse, newErr + } + + return localVarReturnValue, localVarHttpResponse, newErr + } + + return localVarReturnValue, localVarHttpResponse, nil +} + +/* +AdminServiceApiService Fetch the active version of a :ref:`ref_flyteidl.admin.LaunchPlan`. + * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param idOrg Optional, org key applied to the resource. + * @param idProject Name of the project the resource belongs to. + * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. + * @param idName User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' + +@return AdminLaunchPlan +*/ +func (a *AdminServiceApiService) GetActiveLaunchPlan2(ctx context.Context, idOrg string, idProject string, idDomain string, idName string) (AdminLaunchPlan, *http.Response, error) { + var ( + localVarHttpMethod = strings.ToUpper("Get") + localVarPostBody interface{} + localVarFileName string + localVarFileBytes []byte + localVarReturnValue AdminLaunchPlan + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath + "/api/v1/active_launch_plans/org/{id.org}/{id.project}/{id.domain}/{id.name}" + localVarPath = strings.Replace(localVarPath, "{"+"id.org"+"}", fmt.Sprintf("%v", idOrg), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.project"+"}", fmt.Sprintf("%v", idProject), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.domain"+"}", fmt.Sprintf("%v", idDomain), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.name"+"}", fmt.Sprintf("%v", idName), -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + // to determine the Content-Type header + localVarHttpContentTypes := []string{"application/json"} + + // set Content-Type header + localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) + if localVarHttpContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHttpContentType + } + + // to determine the Accept header + localVarHttpHeaderAccepts := []string{"application/json"} + + // set Accept header + localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) + if localVarHttpHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + } + r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHttpResponse, err := a.client.callAPI(r) + if err != nil || localVarHttpResponse == nil { + return localVarReturnValue, localVarHttpResponse, err + } + + localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) + localVarHttpResponse.Body.Close() + if err != nil { + return localVarReturnValue, localVarHttpResponse, err + } + + if localVarHttpResponse.StatusCode < 300 { + // If we succeed, return the data, otherwise pass on to decode error. + err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err == nil { + return localVarReturnValue, localVarHttpResponse, err + } + } + + if localVarHttpResponse.StatusCode >= 300 { + newErr := GenericSwaggerError{ + body: localVarBody, + error: localVarHttpResponse.Status, + } + + if localVarHttpResponse.StatusCode == 200 { + var v AdminLaunchPlan + err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err != nil { + newErr.error = err.Error() + return localVarReturnValue, localVarHttpResponse, newErr + } + newErr.model = v + return localVarReturnValue, localVarHttpResponse, newErr + } + + return localVarReturnValue, localVarHttpResponse, newErr + } + + return localVarReturnValue, localVarHttpResponse, nil +} + +/* +AdminServiceApiService Fetch a :ref:`ref_flyteidl.admin.DescriptionEntity` object. + * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param idResourceType Identifies the specific type of resource that this identifier corresponds to. + * @param idProject Name of the project the resource belongs to. + * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. + * @param idName User provided value for the resource. + * @param idVersion Specific version of the resource. + * @param optional nil or *GetDescriptionEntityOpts - Optional Parameters: + * @param "IdOrg" (optional.String) - Optional, org key applied to the resource. + +@return AdminDescriptionEntity */ type GetDescriptionEntityOpts struct { @@ -4571,28 +5208,148 @@ type GetWorkflowAttributes2Opts struct { ResourceType optional.String } -func (a *AdminServiceApiService) GetWorkflowAttributes2(ctx context.Context, org string, project string, domain string, workflow string, localVarOptionals *GetWorkflowAttributes2Opts) (AdminWorkflowAttributesGetResponse, *http.Response, error) { +func (a *AdminServiceApiService) GetWorkflowAttributes2(ctx context.Context, org string, project string, domain string, workflow string, localVarOptionals *GetWorkflowAttributes2Opts) (AdminWorkflowAttributesGetResponse, *http.Response, error) { + var ( + localVarHttpMethod = strings.ToUpper("Get") + localVarPostBody interface{} + localVarFileName string + localVarFileBytes []byte + localVarReturnValue AdminWorkflowAttributesGetResponse + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath + "/api/v1/workflow_attributes/org/{org}/{project}/{domain}/{workflow}" + localVarPath = strings.Replace(localVarPath, "{"+"org"+"}", fmt.Sprintf("%v", org), -1) + localVarPath = strings.Replace(localVarPath, "{"+"project"+"}", fmt.Sprintf("%v", project), -1) + localVarPath = strings.Replace(localVarPath, "{"+"domain"+"}", fmt.Sprintf("%v", domain), -1) + localVarPath = strings.Replace(localVarPath, "{"+"workflow"+"}", fmt.Sprintf("%v", workflow), -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + if localVarOptionals != nil && localVarOptionals.ResourceType.IsSet() { + localVarQueryParams.Add("resource_type", parameterToString(localVarOptionals.ResourceType.Value(), "")) + } + // to determine the Content-Type header + localVarHttpContentTypes := []string{"application/json"} + + // set Content-Type header + localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) + if localVarHttpContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHttpContentType + } + + // to determine the Accept header + localVarHttpHeaderAccepts := []string{"application/json"} + + // set Accept header + localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) + if localVarHttpHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + } + r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHttpResponse, err := a.client.callAPI(r) + if err != nil || localVarHttpResponse == nil { + return localVarReturnValue, localVarHttpResponse, err + } + + localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) + localVarHttpResponse.Body.Close() + if err != nil { + return localVarReturnValue, localVarHttpResponse, err + } + + if localVarHttpResponse.StatusCode < 300 { + // If we succeed, return the data, otherwise pass on to decode error. + err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err == nil { + return localVarReturnValue, localVarHttpResponse, err + } + } + + if localVarHttpResponse.StatusCode >= 300 { + newErr := GenericSwaggerError{ + body: localVarBody, + error: localVarHttpResponse.Status, + } + + if localVarHttpResponse.StatusCode == 200 { + var v AdminWorkflowAttributesGetResponse + err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err != nil { + newErr.error = err.Error() + return localVarReturnValue, localVarHttpResponse, newErr + } + newErr.model = v + return localVarReturnValue, localVarHttpResponse, newErr + } + + return localVarReturnValue, localVarHttpResponse, newErr + } + + return localVarReturnValue, localVarHttpResponse, nil +} + +/* +AdminServiceApiService List active versions of :ref:`ref_flyteidl.admin.LaunchPlan`. + * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param project Name of the project that contains the identifiers. +required. + * @param domain Name of the domain the identifiers belongs to within the project. +required. + * @param optional nil or *ListActiveLaunchPlansOpts - Optional Parameters: + * @param "Limit" (optional.Int64) - Indicates the number of resources to be returned. +required. + * @param "Token" (optional.String) - In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. + * @param "SortByKey" (optional.String) - Indicates an attribute to sort the response values. +required. + * @param "SortByDirection" (optional.String) - Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + * @param "Org" (optional.String) - Optional, org key applied to the resource. + +@return AdminLaunchPlanList +*/ + +type ListActiveLaunchPlansOpts struct { + Limit optional.Int64 + Token optional.String + SortByKey optional.String + SortByDirection optional.String + Org optional.String +} + +func (a *AdminServiceApiService) ListActiveLaunchPlans(ctx context.Context, project string, domain string, localVarOptionals *ListActiveLaunchPlansOpts) (AdminLaunchPlanList, *http.Response, error) { var ( localVarHttpMethod = strings.ToUpper("Get") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte - localVarReturnValue AdminWorkflowAttributesGetResponse + localVarReturnValue AdminLaunchPlanList ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/api/v1/workflow_attributes/org/{org}/{project}/{domain}/{workflow}" - localVarPath = strings.Replace(localVarPath, "{"+"org"+"}", fmt.Sprintf("%v", org), -1) + localVarPath := a.client.cfg.BasePath + "/api/v1/active_launch_plans/{project}/{domain}" localVarPath = strings.Replace(localVarPath, "{"+"project"+"}", fmt.Sprintf("%v", project), -1) localVarPath = strings.Replace(localVarPath, "{"+"domain"+"}", fmt.Sprintf("%v", domain), -1) - localVarPath = strings.Replace(localVarPath, "{"+"workflow"+"}", fmt.Sprintf("%v", workflow), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - if localVarOptionals != nil && localVarOptionals.ResourceType.IsSet() { - localVarQueryParams.Add("resource_type", parameterToString(localVarOptionals.ResourceType.Value(), "")) + if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { + localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Token.IsSet() { + localVarQueryParams.Add("token", parameterToString(localVarOptionals.Token.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByKey.IsSet() { + localVarQueryParams.Add("sort_by.key", parameterToString(localVarOptionals.SortByKey.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByDirection.IsSet() { + localVarQueryParams.Add("sort_by.direction", parameterToString(localVarOptionals.SortByDirection.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Org.IsSet() { + localVarQueryParams.Add("org", parameterToString(localVarOptionals.Org.Value(), "")) } // to determine the Content-Type header localVarHttpContentTypes := []string{"application/json"} @@ -4642,7 +5399,7 @@ func (a *AdminServiceApiService) GetWorkflowAttributes2(ctx context.Context, org } if localVarHttpResponse.StatusCode == 200 { - var v AdminWorkflowAttributesGetResponse + var v AdminLaunchPlanList err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); if err != nil { newErr.error = err.Error() @@ -4661,27 +5418,26 @@ func (a *AdminServiceApiService) GetWorkflowAttributes2(ctx context.Context, org /* AdminServiceApiService List active versions of :ref:`ref_flyteidl.admin.LaunchPlan`. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param org Optional, org key applied to the resource. * @param project Name of the project that contains the identifiers. +required. * @param domain Name of the domain the identifiers belongs to within the project. +required. - * @param optional nil or *ListActiveLaunchPlansOpts - Optional Parameters: + * @param optional nil or *ListActiveLaunchPlans2Opts - Optional Parameters: * @param "Limit" (optional.Int64) - Indicates the number of resources to be returned. +required. * @param "Token" (optional.String) - In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. * @param "SortByKey" (optional.String) - Indicates an attribute to sort the response values. +required. * @param "SortByDirection" (optional.String) - Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - * @param "Org" (optional.String) - Optional, org key applied to the resource. @return AdminLaunchPlanList */ -type ListActiveLaunchPlansOpts struct { +type ListActiveLaunchPlans2Opts struct { Limit optional.Int64 Token optional.String SortByKey optional.String SortByDirection optional.String - Org optional.String } -func (a *AdminServiceApiService) ListActiveLaunchPlans(ctx context.Context, project string, domain string, localVarOptionals *ListActiveLaunchPlansOpts) (AdminLaunchPlanList, *http.Response, error) { +func (a *AdminServiceApiService) ListActiveLaunchPlans2(ctx context.Context, org string, project string, domain string, localVarOptionals *ListActiveLaunchPlans2Opts) (AdminLaunchPlanList, *http.Response, error) { var ( localVarHttpMethod = strings.ToUpper("Get") localVarPostBody interface{} @@ -4691,7 +5447,8 @@ func (a *AdminServiceApiService) ListActiveLaunchPlans(ctx context.Context, proj ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/api/v1/active_launch_plans/{project}/{domain}" + localVarPath := a.client.cfg.BasePath + "/api/v1/active_launch_plans/org/{org}/{project}/{domain}" + localVarPath = strings.Replace(localVarPath, "{"+"org"+"}", fmt.Sprintf("%v", org), -1) localVarPath = strings.Replace(localVarPath, "{"+"project"+"}", fmt.Sprintf("%v", project), -1) localVarPath = strings.Replace(localVarPath, "{"+"domain"+"}", fmt.Sprintf("%v", domain), -1) @@ -4711,9 +5468,6 @@ func (a *AdminServiceApiService) ListActiveLaunchPlans(ctx context.Context, proj if localVarOptionals != nil && localVarOptionals.SortByDirection.IsSet() { localVarQueryParams.Add("sort_by.direction", parameterToString(localVarOptionals.SortByDirection.Value(), "")) } - if localVarOptionals != nil && localVarOptionals.Org.IsSet() { - localVarQueryParams.Add("org", parameterToString(localVarOptionals.Org.Value(), "")) - } // to determine the Content-Type header localVarHttpContentTypes := []string{"application/json"} @@ -6311,12 +7065,14 @@ AdminServiceApiService Lists custom :ref:`ref_flyteidl.admin.MatchableAttri * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param optional nil or *ListMatchableAttributesOpts - Optional Parameters: * @param "ResourceType" (optional.String) - +required. - TASK_RESOURCE: Applies to customizable task resource requests and limits. - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources. - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment. - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec. - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type. - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides. - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run. + * @param "Org" (optional.String) - Optional, org filter applied to list project requests. @return AdminListMatchableAttributesResponse */ type ListMatchableAttributesOpts struct { ResourceType optional.String + Org optional.String } func (a *AdminServiceApiService) ListMatchableAttributes(ctx context.Context, localVarOptionals *ListMatchableAttributesOpts) (AdminListMatchableAttributesResponse, *http.Response, error) { @@ -6335,6 +7091,107 @@ func (a *AdminServiceApiService) ListMatchableAttributes(ctx context.Context, lo localVarQueryParams := url.Values{} localVarFormParams := url.Values{} + if localVarOptionals != nil && localVarOptionals.ResourceType.IsSet() { + localVarQueryParams.Add("resource_type", parameterToString(localVarOptionals.ResourceType.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Org.IsSet() { + localVarQueryParams.Add("org", parameterToString(localVarOptionals.Org.Value(), "")) + } + // to determine the Content-Type header + localVarHttpContentTypes := []string{"application/json"} + + // set Content-Type header + localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) + if localVarHttpContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHttpContentType + } + + // to determine the Accept header + localVarHttpHeaderAccepts := []string{"application/json"} + + // set Accept header + localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) + if localVarHttpHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + } + r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHttpResponse, err := a.client.callAPI(r) + if err != nil || localVarHttpResponse == nil { + return localVarReturnValue, localVarHttpResponse, err + } + + localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) + localVarHttpResponse.Body.Close() + if err != nil { + return localVarReturnValue, localVarHttpResponse, err + } + + if localVarHttpResponse.StatusCode < 300 { + // If we succeed, return the data, otherwise pass on to decode error. + err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err == nil { + return localVarReturnValue, localVarHttpResponse, err + } + } + + if localVarHttpResponse.StatusCode >= 300 { + newErr := GenericSwaggerError{ + body: localVarBody, + error: localVarHttpResponse.Status, + } + + if localVarHttpResponse.StatusCode == 200 { + var v AdminListMatchableAttributesResponse + err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err != nil { + newErr.error = err.Error() + return localVarReturnValue, localVarHttpResponse, newErr + } + newErr.model = v + return localVarReturnValue, localVarHttpResponse, newErr + } + + return localVarReturnValue, localVarHttpResponse, newErr + } + + return localVarReturnValue, localVarHttpResponse, nil +} + +/* +AdminServiceApiService Lists custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a specific resource type. + * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param org Optional, org filter applied to list project requests. + * @param optional nil or *ListMatchableAttributes2Opts - Optional Parameters: + * @param "ResourceType" (optional.String) - +required. - TASK_RESOURCE: Applies to customizable task resource requests and limits. - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources. - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment. - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec. - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type. - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides. - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run. + +@return AdminListMatchableAttributesResponse +*/ + +type ListMatchableAttributes2Opts struct { + ResourceType optional.String +} + +func (a *AdminServiceApiService) ListMatchableAttributes2(ctx context.Context, org string, localVarOptionals *ListMatchableAttributes2Opts) (AdminListMatchableAttributesResponse, *http.Response, error) { + var ( + localVarHttpMethod = strings.ToUpper("Get") + localVarPostBody interface{} + localVarFileName string + localVarFileBytes []byte + localVarReturnValue AdminListMatchableAttributesResponse + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath + "/api/v1/matchable_attributes/org/{org}" + localVarPath = strings.Replace(localVarPath, "{"+"org"+"}", fmt.Sprintf("%v", org), -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + if localVarOptionals != nil && localVarOptionals.ResourceType.IsSet() { localVarQueryParams.Add("resource_type", parameterToString(localVarOptionals.ResourceType.Value(), "")) } @@ -7218,6 +8075,7 @@ AdminServiceApiService Fetches a list of :ref:`ref_flyteidl.admin.Project&# * @param "Filters" (optional.String) - Indicates a list of filters passed as string. More info on constructing filters : <Link> +optional. * @param "SortByKey" (optional.String) - Indicates an attribute to sort the response values. +required. * @param "SortByDirection" (optional.String) - Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + * @param "Org" (optional.String) - Optional, org filter applied to list project requests. @return AdminProjects */ @@ -7228,9 +8086,130 @@ type ListProjectsOpts struct { Filters optional.String SortByKey optional.String SortByDirection optional.String + Org optional.String +} + +func (a *AdminServiceApiService) ListProjects(ctx context.Context, localVarOptionals *ListProjectsOpts) (AdminProjects, *http.Response, error) { + var ( + localVarHttpMethod = strings.ToUpper("Get") + localVarPostBody interface{} + localVarFileName string + localVarFileBytes []byte + localVarReturnValue AdminProjects + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath + "/api/v1/projects" + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { + localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Token.IsSet() { + localVarQueryParams.Add("token", parameterToString(localVarOptionals.Token.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Filters.IsSet() { + localVarQueryParams.Add("filters", parameterToString(localVarOptionals.Filters.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByKey.IsSet() { + localVarQueryParams.Add("sort_by.key", parameterToString(localVarOptionals.SortByKey.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByDirection.IsSet() { + localVarQueryParams.Add("sort_by.direction", parameterToString(localVarOptionals.SortByDirection.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Org.IsSet() { + localVarQueryParams.Add("org", parameterToString(localVarOptionals.Org.Value(), "")) + } + // to determine the Content-Type header + localVarHttpContentTypes := []string{"application/json"} + + // set Content-Type header + localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) + if localVarHttpContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHttpContentType + } + + // to determine the Accept header + localVarHttpHeaderAccepts := []string{"application/json"} + + // set Accept header + localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) + if localVarHttpHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + } + r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHttpResponse, err := a.client.callAPI(r) + if err != nil || localVarHttpResponse == nil { + return localVarReturnValue, localVarHttpResponse, err + } + + localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) + localVarHttpResponse.Body.Close() + if err != nil { + return localVarReturnValue, localVarHttpResponse, err + } + + if localVarHttpResponse.StatusCode < 300 { + // If we succeed, return the data, otherwise pass on to decode error. + err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err == nil { + return localVarReturnValue, localVarHttpResponse, err + } + } + + if localVarHttpResponse.StatusCode >= 300 { + newErr := GenericSwaggerError{ + body: localVarBody, + error: localVarHttpResponse.Status, + } + + if localVarHttpResponse.StatusCode == 200 { + var v AdminProjects + err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err != nil { + newErr.error = err.Error() + return localVarReturnValue, localVarHttpResponse, newErr + } + newErr.model = v + return localVarReturnValue, localVarHttpResponse, newErr + } + + return localVarReturnValue, localVarHttpResponse, newErr + } + + return localVarReturnValue, localVarHttpResponse, nil +} + +/* +AdminServiceApiService Fetches a list of :ref:`ref_flyteidl.admin.Project` + * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param org Optional, org filter applied to list project requests. + * @param optional nil or *ListProjects2Opts - Optional Parameters: + * @param "Limit" (optional.Int64) - Indicates the number of projects to be returned. +required. + * @param "Token" (optional.String) - In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. + * @param "Filters" (optional.String) - Indicates a list of filters passed as string. More info on constructing filters : <Link> +optional. + * @param "SortByKey" (optional.String) - Indicates an attribute to sort the response values. +required. + * @param "SortByDirection" (optional.String) - Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + +@return AdminProjects +*/ + +type ListProjects2Opts struct { + Limit optional.Int64 + Token optional.String + Filters optional.String + SortByKey optional.String + SortByDirection optional.String } -func (a *AdminServiceApiService) ListProjects(ctx context.Context, localVarOptionals *ListProjectsOpts) (AdminProjects, *http.Response, error) { +func (a *AdminServiceApiService) ListProjects2(ctx context.Context, org string, localVarOptionals *ListProjects2Opts) (AdminProjects, *http.Response, error) { var ( localVarHttpMethod = strings.ToUpper("Get") localVarPostBody interface{} @@ -7240,7 +8219,8 @@ func (a *AdminServiceApiService) ListProjects(ctx context.Context, localVarOptio ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/api/v1/projects" + localVarPath := a.client.cfg.BasePath + "/api/v1/projects/org/{org}" + localVarPath = strings.Replace(localVarPath, "{"+"org"+"}", fmt.Sprintf("%v", org), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} @@ -8515,9 +9495,260 @@ func (a *AdminServiceApiService) ListWorkflowIds2(ctx context.Context, org strin if localVarOptionals != nil && localVarOptionals.SortByDirection.IsSet() { localVarQueryParams.Add("sort_by.direction", parameterToString(localVarOptionals.SortByDirection.Value(), "")) } - if localVarOptionals != nil && localVarOptionals.Filters.IsSet() { - localVarQueryParams.Add("filters", parameterToString(localVarOptionals.Filters.Value(), "")) - } + if localVarOptionals != nil && localVarOptionals.Filters.IsSet() { + localVarQueryParams.Add("filters", parameterToString(localVarOptionals.Filters.Value(), "")) + } + // to determine the Content-Type header + localVarHttpContentTypes := []string{"application/json"} + + // set Content-Type header + localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) + if localVarHttpContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHttpContentType + } + + // to determine the Accept header + localVarHttpHeaderAccepts := []string{"application/json"} + + // set Accept header + localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) + if localVarHttpHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + } + r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHttpResponse, err := a.client.callAPI(r) + if err != nil || localVarHttpResponse == nil { + return localVarReturnValue, localVarHttpResponse, err + } + + localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) + localVarHttpResponse.Body.Close() + if err != nil { + return localVarReturnValue, localVarHttpResponse, err + } + + if localVarHttpResponse.StatusCode < 300 { + // If we succeed, return the data, otherwise pass on to decode error. + err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err == nil { + return localVarReturnValue, localVarHttpResponse, err + } + } + + if localVarHttpResponse.StatusCode >= 300 { + newErr := GenericSwaggerError{ + body: localVarBody, + error: localVarHttpResponse.Status, + } + + if localVarHttpResponse.StatusCode == 200 { + var v AdminNamedEntityIdentifierList + err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err != nil { + newErr.error = err.Error() + return localVarReturnValue, localVarHttpResponse, newErr + } + newErr.model = v + return localVarReturnValue, localVarHttpResponse, newErr + } + + return localVarReturnValue, localVarHttpResponse, newErr + } + + return localVarReturnValue, localVarHttpResponse, nil +} + +/* +AdminServiceApiService Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. + * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param idProject Name of the project the resource belongs to. + * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. + * @param idName User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' + * @param optional nil or *ListWorkflowsOpts - Optional Parameters: + * @param "IdOrg" (optional.String) - Optional, org key applied to the resource. + * @param "Limit" (optional.Int64) - Indicates the number of resources to be returned. +required. + * @param "Token" (optional.String) - In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. + * @param "Filters" (optional.String) - Indicates a list of filters passed as string. More info on constructing filters : <Link> +optional. + * @param "SortByKey" (optional.String) - Indicates an attribute to sort the response values. +required. + * @param "SortByDirection" (optional.String) - Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + +@return AdminWorkflowList +*/ + +type ListWorkflowsOpts struct { + IdOrg optional.String + Limit optional.Int64 + Token optional.String + Filters optional.String + SortByKey optional.String + SortByDirection optional.String +} + +func (a *AdminServiceApiService) ListWorkflows(ctx context.Context, idProject string, idDomain string, idName string, localVarOptionals *ListWorkflowsOpts) (AdminWorkflowList, *http.Response, error) { + var ( + localVarHttpMethod = strings.ToUpper("Get") + localVarPostBody interface{} + localVarFileName string + localVarFileBytes []byte + localVarReturnValue AdminWorkflowList + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath + "/api/v1/workflows/{id.project}/{id.domain}/{id.name}" + localVarPath = strings.Replace(localVarPath, "{"+"id.project"+"}", fmt.Sprintf("%v", idProject), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.domain"+"}", fmt.Sprintf("%v", idDomain), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.name"+"}", fmt.Sprintf("%v", idName), -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + if localVarOptionals != nil && localVarOptionals.IdOrg.IsSet() { + localVarQueryParams.Add("id.org", parameterToString(localVarOptionals.IdOrg.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { + localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Token.IsSet() { + localVarQueryParams.Add("token", parameterToString(localVarOptionals.Token.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Filters.IsSet() { + localVarQueryParams.Add("filters", parameterToString(localVarOptionals.Filters.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByKey.IsSet() { + localVarQueryParams.Add("sort_by.key", parameterToString(localVarOptionals.SortByKey.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByDirection.IsSet() { + localVarQueryParams.Add("sort_by.direction", parameterToString(localVarOptionals.SortByDirection.Value(), "")) + } + // to determine the Content-Type header + localVarHttpContentTypes := []string{"application/json"} + + // set Content-Type header + localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) + if localVarHttpContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHttpContentType + } + + // to determine the Accept header + localVarHttpHeaderAccepts := []string{"application/json"} + + // set Accept header + localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) + if localVarHttpHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + } + r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHttpResponse, err := a.client.callAPI(r) + if err != nil || localVarHttpResponse == nil { + return localVarReturnValue, localVarHttpResponse, err + } + + localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) + localVarHttpResponse.Body.Close() + if err != nil { + return localVarReturnValue, localVarHttpResponse, err + } + + if localVarHttpResponse.StatusCode < 300 { + // If we succeed, return the data, otherwise pass on to decode error. + err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err == nil { + return localVarReturnValue, localVarHttpResponse, err + } + } + + if localVarHttpResponse.StatusCode >= 300 { + newErr := GenericSwaggerError{ + body: localVarBody, + error: localVarHttpResponse.Status, + } + + if localVarHttpResponse.StatusCode == 200 { + var v AdminWorkflowList + err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err != nil { + newErr.error = err.Error() + return localVarReturnValue, localVarHttpResponse, newErr + } + newErr.model = v + return localVarReturnValue, localVarHttpResponse, newErr + } + + return localVarReturnValue, localVarHttpResponse, newErr + } + + return localVarReturnValue, localVarHttpResponse, nil +} + +/* +AdminServiceApiService Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. + * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param idOrg Optional, org key applied to the resource. + * @param idProject Name of the project the resource belongs to. + * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. + * @param idName User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' + * @param optional nil or *ListWorkflows2Opts - Optional Parameters: + * @param "Limit" (optional.Int64) - Indicates the number of resources to be returned. +required. + * @param "Token" (optional.String) - In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. + * @param "Filters" (optional.String) - Indicates a list of filters passed as string. More info on constructing filters : <Link> +optional. + * @param "SortByKey" (optional.String) - Indicates an attribute to sort the response values. +required. + * @param "SortByDirection" (optional.String) - Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + +@return AdminWorkflowList +*/ + +type ListWorkflows2Opts struct { + Limit optional.Int64 + Token optional.String + Filters optional.String + SortByKey optional.String + SortByDirection optional.String +} + +func (a *AdminServiceApiService) ListWorkflows2(ctx context.Context, idOrg string, idProject string, idDomain string, idName string, localVarOptionals *ListWorkflows2Opts) (AdminWorkflowList, *http.Response, error) { + var ( + localVarHttpMethod = strings.ToUpper("Get") + localVarPostBody interface{} + localVarFileName string + localVarFileBytes []byte + localVarReturnValue AdminWorkflowList + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath + "/api/v1/workflows/org/{id.org}/{id.project}/{id.domain}/{id.name}" + localVarPath = strings.Replace(localVarPath, "{"+"id.org"+"}", fmt.Sprintf("%v", idOrg), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.project"+"}", fmt.Sprintf("%v", idProject), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.domain"+"}", fmt.Sprintf("%v", idDomain), -1) + localVarPath = strings.Replace(localVarPath, "{"+"id.name"+"}", fmt.Sprintf("%v", idName), -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { + localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Token.IsSet() { + localVarQueryParams.Add("token", parameterToString(localVarOptionals.Token.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Filters.IsSet() { + localVarQueryParams.Add("filters", parameterToString(localVarOptionals.Filters.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByKey.IsSet() { + localVarQueryParams.Add("sort_by.key", parameterToString(localVarOptionals.SortByKey.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortByDirection.IsSet() { + localVarQueryParams.Add("sort_by.direction", parameterToString(localVarOptionals.SortByDirection.Value(), "")) + } // to determine the Content-Type header localVarHttpContentTypes := []string{"application/json"} @@ -8566,7 +9797,7 @@ func (a *AdminServiceApiService) ListWorkflowIds2(ctx context.Context, org strin } if localVarHttpResponse.StatusCode == 200 { - var v AdminNamedEntityIdentifierList + var v AdminWorkflowList err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); if err != nil { newErr.error = err.Error() @@ -8587,8 +9818,8 @@ AdminServiceApiService Fetch a list of :ref:`ref_flyteidl.admin.Workflow&#x * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param idProject Name of the project the resource belongs to. * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. - * @param idName User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' - * @param optional nil or *ListWorkflowsOpts - Optional Parameters: + * @param optional nil or *ListWorkflows3Opts - Optional Parameters: + * @param "IdName" (optional.String) - User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. * @param "IdOrg" (optional.String) - Optional, org key applied to the resource. * @param "Limit" (optional.Int64) - Indicates the number of resources to be returned. +required. * @param "Token" (optional.String) - In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. @@ -8599,7 +9830,8 @@ AdminServiceApiService Fetch a list of :ref:`ref_flyteidl.admin.Workflow&#x @return AdminWorkflowList */ -type ListWorkflowsOpts struct { +type ListWorkflows3Opts struct { + IdName optional.String IdOrg optional.String Limit optional.Int64 Token optional.String @@ -8608,7 +9840,7 @@ type ListWorkflowsOpts struct { SortByDirection optional.String } -func (a *AdminServiceApiService) ListWorkflows(ctx context.Context, idProject string, idDomain string, idName string, localVarOptionals *ListWorkflowsOpts) (AdminWorkflowList, *http.Response, error) { +func (a *AdminServiceApiService) ListWorkflows3(ctx context.Context, idProject string, idDomain string, localVarOptionals *ListWorkflows3Opts) (AdminWorkflowList, *http.Response, error) { var ( localVarHttpMethod = strings.ToUpper("Get") localVarPostBody interface{} @@ -8618,15 +9850,17 @@ func (a *AdminServiceApiService) ListWorkflows(ctx context.Context, idProject st ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/api/v1/workflows/{id.project}/{id.domain}/{id.name}" + localVarPath := a.client.cfg.BasePath + "/api/v1/workflows/{id.project}/{id.domain}" localVarPath = strings.Replace(localVarPath, "{"+"id.project"+"}", fmt.Sprintf("%v", idProject), -1) localVarPath = strings.Replace(localVarPath, "{"+"id.domain"+"}", fmt.Sprintf("%v", idDomain), -1) - localVarPath = strings.Replace(localVarPath, "{"+"id.name"+"}", fmt.Sprintf("%v", idName), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} + if localVarOptionals != nil && localVarOptionals.IdName.IsSet() { + localVarQueryParams.Add("id.name", parameterToString(localVarOptionals.IdName.Value(), "")) + } if localVarOptionals != nil && localVarOptionals.IdOrg.IsSet() { localVarQueryParams.Add("id.org", parameterToString(localVarOptionals.IdOrg.Value(), "")) } @@ -8715,8 +9949,8 @@ AdminServiceApiService Fetch a list of :ref:`ref_flyteidl.admin.Workflow&#x * @param idOrg Optional, org key applied to the resource. * @param idProject Name of the project the resource belongs to. * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. - * @param idName User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' - * @param optional nil or *ListWorkflows2Opts - Optional Parameters: + * @param optional nil or *ListWorkflows4Opts - Optional Parameters: + * @param "IdName" (optional.String) - User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. * @param "Limit" (optional.Int64) - Indicates the number of resources to be returned. +required. * @param "Token" (optional.String) - In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. * @param "Filters" (optional.String) - Indicates a list of filters passed as string. More info on constructing filters : <Link> +optional. @@ -8726,7 +9960,8 @@ AdminServiceApiService Fetch a list of :ref:`ref_flyteidl.admin.Workflow&#x @return AdminWorkflowList */ -type ListWorkflows2Opts struct { +type ListWorkflows4Opts struct { + IdName optional.String Limit optional.Int64 Token optional.String Filters optional.String @@ -8734,7 +9969,7 @@ type ListWorkflows2Opts struct { SortByDirection optional.String } -func (a *AdminServiceApiService) ListWorkflows2(ctx context.Context, idOrg string, idProject string, idDomain string, idName string, localVarOptionals *ListWorkflows2Opts) (AdminWorkflowList, *http.Response, error) { +func (a *AdminServiceApiService) ListWorkflows4(ctx context.Context, idOrg string, idProject string, idDomain string, localVarOptionals *ListWorkflows4Opts) (AdminWorkflowList, *http.Response, error) { var ( localVarHttpMethod = strings.ToUpper("Get") localVarPostBody interface{} @@ -8744,16 +9979,18 @@ func (a *AdminServiceApiService) ListWorkflows2(ctx context.Context, idOrg strin ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/api/v1/workflows/org/{id.org}/{id.project}/{id.domain}/{id.name}" + localVarPath := a.client.cfg.BasePath + "/api/v1/workflows/org/{id.org}/{id.project}/{id.domain}" localVarPath = strings.Replace(localVarPath, "{"+"id.org"+"}", fmt.Sprintf("%v", idOrg), -1) localVarPath = strings.Replace(localVarPath, "{"+"id.project"+"}", fmt.Sprintf("%v", idProject), -1) localVarPath = strings.Replace(localVarPath, "{"+"id.domain"+"}", fmt.Sprintf("%v", idDomain), -1) - localVarPath = strings.Replace(localVarPath, "{"+"id.name"+"}", fmt.Sprintf("%v", idName), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} + if localVarOptionals != nil && localVarOptionals.IdName.IsSet() { + localVarQueryParams.Add("id.name", parameterToString(localVarOptionals.IdName.Value(), "")) + } if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) } @@ -8834,71 +10071,28 @@ func (a *AdminServiceApiService) ListWorkflows2(ctx context.Context, idOrg strin } /* -AdminServiceApiService Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. +AdminServiceApiService Recreates a previously-run workflow execution that will only start executing from the last known failure point. In Recover mode, users cannot change any input parameters or update the version of the execution. This is extremely useful to recover from system errors and byzantine faults like - Loss of K8s cluster, bugs in platform or instability, machine failures, downstream system failures (downstream services), or simply to recover executions that failed because of retry exhaustion and should complete if tried again. See :ref:`ref_flyteidl.admin.ExecutionRecoverRequest` for more details. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @param idProject Name of the project the resource belongs to. - * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. - * @param optional nil or *ListWorkflows3Opts - Optional Parameters: - * @param "IdName" (optional.String) - User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. - * @param "IdOrg" (optional.String) - Optional, org key applied to the resource. - * @param "Limit" (optional.Int64) - Indicates the number of resources to be returned. +required. - * @param "Token" (optional.String) - In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. - * @param "Filters" (optional.String) - Indicates a list of filters passed as string. More info on constructing filters : <Link> +optional. - * @param "SortByKey" (optional.String) - Indicates an attribute to sort the response values. +required. - * @param "SortByDirection" (optional.String) - Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + * @param body -@return AdminWorkflowList +@return AdminExecutionCreateResponse */ - -type ListWorkflows3Opts struct { - IdName optional.String - IdOrg optional.String - Limit optional.Int64 - Token optional.String - Filters optional.String - SortByKey optional.String - SortByDirection optional.String -} - -func (a *AdminServiceApiService) ListWorkflows3(ctx context.Context, idProject string, idDomain string, localVarOptionals *ListWorkflows3Opts) (AdminWorkflowList, *http.Response, error) { +func (a *AdminServiceApiService) RecoverExecution(ctx context.Context, body AdminExecutionRecoverRequest) (AdminExecutionCreateResponse, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Get") + localVarHttpMethod = strings.ToUpper("Post") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte - localVarReturnValue AdminWorkflowList + localVarReturnValue AdminExecutionCreateResponse ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/api/v1/workflows/{id.project}/{id.domain}" - localVarPath = strings.Replace(localVarPath, "{"+"id.project"+"}", fmt.Sprintf("%v", idProject), -1) - localVarPath = strings.Replace(localVarPath, "{"+"id.domain"+"}", fmt.Sprintf("%v", idDomain), -1) + localVarPath := a.client.cfg.BasePath + "/api/v1/executions/recover" localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - if localVarOptionals != nil && localVarOptionals.IdName.IsSet() { - localVarQueryParams.Add("id.name", parameterToString(localVarOptionals.IdName.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.IdOrg.IsSet() { - localVarQueryParams.Add("id.org", parameterToString(localVarOptionals.IdOrg.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { - localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.Token.IsSet() { - localVarQueryParams.Add("token", parameterToString(localVarOptionals.Token.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.Filters.IsSet() { - localVarQueryParams.Add("filters", parameterToString(localVarOptionals.Filters.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.SortByKey.IsSet() { - localVarQueryParams.Add("sort_by.key", parameterToString(localVarOptionals.SortByKey.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.SortByDirection.IsSet() { - localVarQueryParams.Add("sort_by.direction", parameterToString(localVarOptionals.SortByDirection.Value(), "")) - } // to determine the Content-Type header localVarHttpContentTypes := []string{"application/json"} @@ -8916,6 +10110,8 @@ func (a *AdminServiceApiService) ListWorkflows3(ctx context.Context, idProject s if localVarHttpHeaderAccept != "" { localVarHeaderParams["Accept"] = localVarHttpHeaderAccept } + // body params + localVarPostBody = &body r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) if err != nil { return localVarReturnValue, nil, err @@ -8947,7 +10143,7 @@ func (a *AdminServiceApiService) ListWorkflows3(ctx context.Context, idProject s } if localVarHttpResponse.StatusCode == 200 { - var v AdminWorkflowList + var v AdminExecutionCreateResponse err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); if err != nil { newErr.error = err.Error() @@ -8964,68 +10160,30 @@ func (a *AdminServiceApiService) ListWorkflows3(ctx context.Context, idProject s } /* -AdminServiceApiService Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. +AdminServiceApiService Recreates a previously-run workflow execution that will only start executing from the last known failure point. In Recover mode, users cannot change any input parameters or update the version of the execution. This is extremely useful to recover from system errors and byzantine faults like - Loss of K8s cluster, bugs in platform or instability, machine failures, downstream system failures (downstream services), or simply to recover executions that failed because of retry exhaustion and should complete if tried again. See :ref:`ref_flyteidl.admin.ExecutionRecoverRequest` for more details. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param idOrg Optional, org key applied to the resource. - * @param idProject Name of the project the resource belongs to. - * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. - * @param optional nil or *ListWorkflows4Opts - Optional Parameters: - * @param "IdName" (optional.String) - User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. - * @param "Limit" (optional.Int64) - Indicates the number of resources to be returned. +required. - * @param "Token" (optional.String) - In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. - * @param "Filters" (optional.String) - Indicates a list of filters passed as string. More info on constructing filters : <Link> +optional. - * @param "SortByKey" (optional.String) - Indicates an attribute to sort the response values. +required. - * @param "SortByDirection" (optional.String) - Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + * @param body -@return AdminWorkflowList +@return AdminExecutionCreateResponse */ - -type ListWorkflows4Opts struct { - IdName optional.String - Limit optional.Int64 - Token optional.String - Filters optional.String - SortByKey optional.String - SortByDirection optional.String -} - -func (a *AdminServiceApiService) ListWorkflows4(ctx context.Context, idOrg string, idProject string, idDomain string, localVarOptionals *ListWorkflows4Opts) (AdminWorkflowList, *http.Response, error) { +func (a *AdminServiceApiService) RecoverExecution2(ctx context.Context, idOrg string, body AdminExecutionRecoverRequest) (AdminExecutionCreateResponse, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Get") + localVarHttpMethod = strings.ToUpper("Post") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte - localVarReturnValue AdminWorkflowList + localVarReturnValue AdminExecutionCreateResponse ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/api/v1/workflows/org/{id.org}/{id.project}/{id.domain}" + localVarPath := a.client.cfg.BasePath + "/api/v1/executions/org/{id.org}/recover" localVarPath = strings.Replace(localVarPath, "{"+"id.org"+"}", fmt.Sprintf("%v", idOrg), -1) - localVarPath = strings.Replace(localVarPath, "{"+"id.project"+"}", fmt.Sprintf("%v", idProject), -1) - localVarPath = strings.Replace(localVarPath, "{"+"id.domain"+"}", fmt.Sprintf("%v", idDomain), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - if localVarOptionals != nil && localVarOptionals.IdName.IsSet() { - localVarQueryParams.Add("id.name", parameterToString(localVarOptionals.IdName.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { - localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.Token.IsSet() { - localVarQueryParams.Add("token", parameterToString(localVarOptionals.Token.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.Filters.IsSet() { - localVarQueryParams.Add("filters", parameterToString(localVarOptionals.Filters.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.SortByKey.IsSet() { - localVarQueryParams.Add("sort_by.key", parameterToString(localVarOptionals.SortByKey.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.SortByDirection.IsSet() { - localVarQueryParams.Add("sort_by.direction", parameterToString(localVarOptionals.SortByDirection.Value(), "")) - } // to determine the Content-Type header localVarHttpContentTypes := []string{"application/json"} @@ -9043,6 +10201,8 @@ func (a *AdminServiceApiService) ListWorkflows4(ctx context.Context, idOrg strin if localVarHttpHeaderAccept != "" { localVarHeaderParams["Accept"] = localVarHttpHeaderAccept } + // body params + localVarPostBody = &body r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) if err != nil { return localVarReturnValue, nil, err @@ -9074,7 +10234,7 @@ func (a *AdminServiceApiService) ListWorkflows4(ctx context.Context, idOrg strin } if localVarHttpResponse.StatusCode == 200 { - var v AdminWorkflowList + var v AdminExecutionCreateResponse err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); if err != nil { newErr.error = err.Error() @@ -9091,23 +10251,23 @@ func (a *AdminServiceApiService) ListWorkflows4(ctx context.Context, idOrg strin } /* -AdminServiceApiService Recreates a previously-run workflow execution that will only start executing from the last known failure point. In Recover mode, users cannot change any input parameters or update the version of the execution. This is extremely useful to recover from system errors and byzantine faults like - Loss of K8s cluster, bugs in platform or instability, machine failures, downstream system failures (downstream services), or simply to recover executions that failed because of retry exhaustion and should complete if tried again. See :ref:`ref_flyteidl.admin.ExecutionRecoverRequest` for more details. +AdminServiceApiService Registers a :ref:`ref_flyteidl.admin.Project` with the Flyte deployment. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param body -@return AdminExecutionCreateResponse +@return AdminProjectRegisterResponse */ -func (a *AdminServiceApiService) RecoverExecution(ctx context.Context, body AdminExecutionRecoverRequest) (AdminExecutionCreateResponse, *http.Response, error) { +func (a *AdminServiceApiService) RegisterProject(ctx context.Context, body AdminProjectRegisterRequest) (AdminProjectRegisterResponse, *http.Response, error) { var ( localVarHttpMethod = strings.ToUpper("Post") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte - localVarReturnValue AdminExecutionCreateResponse + localVarReturnValue AdminProjectRegisterResponse ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/api/v1/executions/recover" + localVarPath := a.client.cfg.BasePath + "/api/v1/projects" localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} @@ -9163,7 +10323,7 @@ func (a *AdminServiceApiService) RecoverExecution(ctx context.Context, body Admi } if localVarHttpResponse.StatusCode == 200 { - var v AdminExecutionCreateResponse + var v AdminProjectRegisterResponse err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); if err != nil { newErr.error = err.Error() @@ -9182,11 +10342,12 @@ func (a *AdminServiceApiService) RecoverExecution(ctx context.Context, body Admi /* AdminServiceApiService Registers a :ref:`ref_flyteidl.admin.Project` with the Flyte deployment. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param projectOrg Optional, org key applied to the resource. * @param body @return AdminProjectRegisterResponse */ -func (a *AdminServiceApiService) RegisterProject(ctx context.Context, body AdminProjectRegisterRequest) (AdminProjectRegisterResponse, *http.Response, error) { +func (a *AdminServiceApiService) RegisterProject2(ctx context.Context, projectOrg string, body AdminProjectRegisterRequest) (AdminProjectRegisterResponse, *http.Response, error) { var ( localVarHttpMethod = strings.ToUpper("Post") localVarPostBody interface{} @@ -9196,7 +10357,8 @@ func (a *AdminServiceApiService) RegisterProject(ctx context.Context, body Admin ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/api/v1/projects" + localVarPath := a.client.cfg.BasePath + "/api/v1/projects/org/{project.org}" + localVarPath = strings.Replace(localVarPath, "{"+"project.org"+"}", fmt.Sprintf("%v", projectOrg), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} @@ -9357,6 +10519,97 @@ func (a *AdminServiceApiService) RelaunchExecution(ctx context.Context, body Adm return localVarReturnValue, localVarHttpResponse, nil } +/* +AdminServiceApiService Triggers the creation of an identical :ref:`ref_flyteidl.admin.Execution` + * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param idOrg Optional, org key applied to the resource. + * @param body + +@return AdminExecutionCreateResponse +*/ +func (a *AdminServiceApiService) RelaunchExecution2(ctx context.Context, idOrg string, body AdminExecutionRelaunchRequest) (AdminExecutionCreateResponse, *http.Response, error) { + var ( + localVarHttpMethod = strings.ToUpper("Post") + localVarPostBody interface{} + localVarFileName string + localVarFileBytes []byte + localVarReturnValue AdminExecutionCreateResponse + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath + "/api/v1/executions/org/{id.org}/relaunch" + localVarPath = strings.Replace(localVarPath, "{"+"id.org"+"}", fmt.Sprintf("%v", idOrg), -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + // to determine the Content-Type header + localVarHttpContentTypes := []string{"application/json"} + + // set Content-Type header + localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) + if localVarHttpContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHttpContentType + } + + // to determine the Accept header + localVarHttpHeaderAccepts := []string{"application/json"} + + // set Accept header + localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) + if localVarHttpHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + } + // body params + localVarPostBody = &body + r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHttpResponse, err := a.client.callAPI(r) + if err != nil || localVarHttpResponse == nil { + return localVarReturnValue, localVarHttpResponse, err + } + + localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) + localVarHttpResponse.Body.Close() + if err != nil { + return localVarReturnValue, localVarHttpResponse, err + } + + if localVarHttpResponse.StatusCode < 300 { + // If we succeed, return the data, otherwise pass on to decode error. + err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err == nil { + return localVarReturnValue, localVarHttpResponse, err + } + } + + if localVarHttpResponse.StatusCode >= 300 { + newErr := GenericSwaggerError{ + body: localVarBody, + error: localVarHttpResponse.Status, + } + + if localVarHttpResponse.StatusCode == 200 { + var v AdminExecutionCreateResponse + err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err != nil { + newErr.error = err.Error() + return localVarReturnValue, localVarHttpResponse, newErr + } + newErr.model = v + return localVarReturnValue, localVarHttpResponse, newErr + } + + return localVarReturnValue, localVarHttpResponse, newErr + } + + return localVarReturnValue, localVarHttpResponse, nil +} + /* AdminServiceApiService Terminates an in-progress :ref:`ref_flyteidl.admin.Execution`. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). @@ -9473,7 +10726,7 @@ func (a *AdminServiceApiService) TerminateExecution2(ctx context.Context, idOrg ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/api/v1/data/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}" + localVarPath := a.client.cfg.BasePath + "/api/v1/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}" localVarPath = strings.Replace(localVarPath, "{"+"id.org"+"}", fmt.Sprintf("%v", idOrg), -1) localVarPath = strings.Replace(localVarPath, "{"+"id.project"+"}", fmt.Sprintf("%v", idProject), -1) localVarPath = strings.Replace(localVarPath, "{"+"id.domain"+"}", fmt.Sprintf("%v", idDomain), -1) diff --git a/flyteidl/gen/pb-go/flyteidl/service/openapi.go b/flyteidl/gen/pb-go/flyteidl/service/openapi.go index 2629dfb916..d8912c8295 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/openapi.go +++ b/flyteidl/gen/pb-go/flyteidl/service/openapi.go @@ -78,7 +78,7 @@ func (fi bindataFileInfo) Sys() interface{} { return nil } -var _adminSwaggerJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\xfd\x7b\x73\xe3\xb8\xb5\x2f\x0c\xff\xbf\x3f\x05\xaa\xf7\x5b\xd5\x33\x89\xed\x9e\x5c\xce\x7e\x53\xde\x75\xea\x79\x34\xb6\xba\x47\x67\xdc\xb6\x63\xcb\xd3\x7b\xea\x68\x97\x06\x22\x21\x09\x31\x05\x68\x00\xd0\x6e\x65\x57\xbe\xfb\x53\x58\x00\x48\x90\x22\x29\xea\x66\x4b\x6e\x24\x55\x89\x5b\x24\x71\x59\x00\x16\xd6\xf5\xb7\xfe\xe7\xdf\x10\x7a\x27\x9f\xf1\x64\x42\xc4\xbb\x73\xf4\xee\xcf\x67\x3f\xbc\x3b\xd1\xbf\x51\x36\xe6\xef\xce\x91\x7e\x8e\xd0\x3b\x45\x55\x42\xf4\xf3\x71\xb2\x50\x84\xc6\xc9\x07\x49\xc4\x13\x8d\xc8\x07\x1c\xcf\x28\x3b\x9b\x0b\xae\x38\x7c\x88\xd0\xbb\x27\x22\x24\xe5\x4c\xbf\x6e\xff\x44\x8c\x2b\x24\x89\x7a\xf7\x6f\x08\xfd\x0b\x9a\x97\xd1\x94\xcc\x88\x7c\x77\x8e\xfe\xaf\xf9\x68\xaa\xd4\xdc\x35\xa0\xff\x96\xfa\xdd\xff\x86\x77\x23\xce\x64\x5a\x78\x19\xcf\xe7\x09\x8d\xb0\xa2\x9c\x7d\xf8\x87\xe4\x2c\x7f\x77\x2e\x78\x9c\x46\x2d\xdf\xc5\x6a\x2a\xf3\x39\x7e\xc0\x73\xfa\xe1\xe9\x4f\x1f\x70\xa4\xe8\x13\x19\x26\x38\x65\xd1\x74\x38\x4f\x30\x93\x1f\xb8\x98\x7c\xf8\x1f\x1a\x9f\x71\x31\xf9\x17\xfc\x31\x17\xfc\x1f\x24\x52\xe6\x1f\x31\x9f\x61\xca\xcc\xdf\x0c\xcf\xc8\xbf\xb2\x46\x11\x7a\x37\x21\xca\xfb\xa7\x9e\x7a\x3a\x9b\x61\xb1\xd0\xe4\xf9\x48\x54\x34\x45\x6a\x4a\x90\xe9\x14\x39\x7a\xf1\x31\xc2\xe8\x5c\x90\xf1\xf9\x6f\x82\x8c\x87\x8e\xea\x67\x86\xda\x57\x30\xb4\xdb\x04\xb3\xdf\xce\x2c\xcd\xa0\x65\x3e\x27\x02\x26\xda\x8b\x75\xeb\x9f\x88\xea\x40\xb3\xf9\xfb\x7f\xf6\x5f\x17\x44\xce\x39\x93\x44\x16\xc6\x87\xd0\xbb\x3f\xff\xf0\x43\xe9\x27\x84\xde\xc5\x44\x46\x82\xce\x95\x5d\xd9\x0e\x92\x69\x14\x11\x29\xc7\x69\x82\x5c\x4b\xfe\x68\xcc\x5c\xf5\x32\xe3\xa5\xc6\x10\x7a\xf7\xff\x13\x64\xac\xdb\xf9\xf7\x0f\x31\x19\x53\x46\x75\xbb\xd2\xec\xa6\x7c\xb8\xef\x0a\x5f\xfd\xeb\xdf\xaa\xfe\xfe\x97\x37\xa3\x39\x16\x78\x46\x14\x11\xf9\xfa\x9b\xff\x94\xe6\xa2\x17\x49\x77\x6e\x56\xb4\x3c\xe8\xd2\x4c\x6f\xe0\x2f\x9c\x9c\x20\x2e\x26\xe8\x91\x2c\x10\x6c\x29\x12\x23\xc5\x61\xed\x04\x91\x3c\x15\xd1\xf2\xec\x29\x7c\xaf\xb7\x59\xf9\x89\x20\xbf\xa7\x54\x10\xbd\x4c\x4a\xa4\xa4\xf4\x54\x2d\xe6\x30\x3c\xa9\x04\x65\x13\x9f\x08\xff\x3a\x69\x35\x29\xbb\x3b\x57\x4c\xec\x1a\xcf\x88\xde\x69\x7a\x0e\xf6\x8b\xc2\x7c\xd0\x88\x24\x9c\x4d\x24\x52\xfc\x70\xa6\x66\xce\xda\x1a\x33\x33\x1f\xd4\x4e\x6c\xc0\x3a\xee\x95\x08\x33\x34\x22\x48\xb3\x1b\x1a\x13\x41\x62\x84\x25\xc2\x48\xa6\x23\x49\x14\x7a\xa6\x6a\x4a\x99\xfe\xf7\x9c\x44\x74\x4c\x23\x47\xb3\xc3\xa1\x0d\xfc\xd9\x4c\x99\x07\x49\x84\x1e\xf8\x13\x8d\x49\x8c\x9e\x70\x92\x12\x34\xe6\xa2\xb8\x8f\x07\xac\x3f\xd5\x74\x98\x8d\x28\x03\x7e\xa2\x69\xe9\x76\xc8\x1f\x1d\xb9\xfe\x88\x74\x7f\x28\x65\xf4\xf7\x94\x24\x0b\x44\x63\xc2\x14\x1d\x53\x22\xcb\xad\xfd\x91\xdb\x23\x84\x4e\x91\xa6\x33\x11\x0a\xe8\xcd\x99\x22\x5f\x95\x44\xa7\x28\xa1\x8f\x04\xbd\xbf\xa2\x52\xa1\xce\x6d\xef\xfd\x09\x7a\x6f\x98\x00\x02\xf6\xfb\xfe\x05\x28\x9c\xfd\xfd\xdf\x1e\x3f\x51\x78\x52\xe6\x24\xef\x3a\x9a\x45\xdd\x9b\xdb\x2f\x6f\xe1\xbf\xff\xcd\x6f\xc7\xae\x57\xe3\x95\x72\xc4\xb7\x48\xb8\x44\x02\xbf\x0d\xfc\x36\xf0\xdb\xfd\x53\x78\xff\xd2\xd9\xef\x29\x11\x8b\x86\x59\x8d\x71\x22\x0f\xfa\x1a\xc9\xef\x10\x7b\x81\xb4\xbd\x36\x60\xf5\x8b\x37\x86\xd4\x1b\x6f\xdb\x0b\x43\xb7\x5b\xbe\x31\xe4\x71\x5d\x19\x7a\x0a\xfb\xbe\x36\xb6\xb9\x33\xb0\x82\xc3\x8c\x29\x33\x67\x3f\x63\x05\x42\xea\xe3\xef\xb6\xef\x81\x70\xca\x6d\xae\x10\x6f\x66\xde\x2d\xe2\x2e\x07\x8f\x2a\x07\x38\xef\x84\xce\xe8\xaa\xf5\xed\xb1\x98\x46\x58\x59\x1e\xce\xd2\xd9\x88\x08\x4d\x06\xc7\xb5\x60\xb6\x23\xcd\xc5\x54\x2a\x18\x89\x5b\x4c\x73\x1b\x8e\x46\x99\x22\x13\x22\xca\x5f\x8f\xb9\x98\x61\x65\x5f\xf8\x8f\xbf\xae\x4b\x08\xc5\x1f\xc9\xaa\xf5\xef\x99\xd5\x8c\xb0\x84\x6d\x30\x4b\x13\x45\xe7\x09\x41\x73\x3c\x21\xd2\x52\x24\x4d\x94\x3c\x81\xd7\x24\x11\x4f\x44\x9c\x66\x17\x2b\xf4\xe0\x04\x8a\x54\x1a\xee\x3f\xce\xe4\x62\x46\xbe\x2a\x68\x69\xc0\x40\xa4\x00\x12\xf9\x17\xe5\xcb\x5c\x0e\x2d\x48\x25\xb9\x50\xc3\xd1\xe2\xec\x91\x2c\xf5\x5b\xbb\x73\x30\x43\x58\x29\x41\x47\xa9\x22\x7a\xde\xba\x0d\x77\xf5\x01\x7b\x34\x72\x47\x1b\xd6\xf0\x7a\x13\x8e\xa9\x20\x11\xcc\x6d\x9d\x03\x93\x7d\xa5\xe7\xad\x2f\xfe\x85\x99\xbd\x96\x03\xb4\x98\x55\x41\x81\x6c\xc9\x07\x6c\xc0\xd0\x29\xba\xec\xde\x5f\x74\xaf\x2f\x7b\xd7\x9f\xce\xd1\x8f\x0b\x14\x93\x31\x4e\x13\x75\x82\xc6\x94\x24\xb1\x44\x58\x10\x68\x92\xc4\x5a\x94\xd2\x83\x21\x2c\xa6\x6c\x82\xb8\x88\x89\xd8\x1f\x19\x4b\x4f\x09\x4b\x67\xa5\x7b\x05\x7e\xcf\x47\x5f\xfa\x42\x8b\x18\xd9\xa3\xc2\x93\xff\x5e\x22\x30\xcc\x58\xf7\xed\xb5\xb6\xe6\x32\x06\x41\xcd\x17\xd4\xa2\x29\x4d\x62\x41\xd8\x07\x85\xe5\xe3\x90\x7c\x25\x51\x6a\xe4\x0c\xb0\x23\x17\x7f\x1c\x6a\x45\x82\xc7\xa4\xf8\x4b\xe1\x1f\xc6\xea\xbc\xf6\x67\xb9\x64\xb8\xf6\xa7\x99\x2d\x62\xed\x2f\xc1\x72\xd1\xee\x3b\xf8\x85\xc6\x95\x6f\xc3\x2f\x2b\xe6\xe0\xde\x69\x18\xac\x7b\xa5\x76\x54\xee\x05\x2b\x00\x57\xbe\x23\x88\x12\x8b\x21\x56\x8a\xcc\xe6\x6a\x4d\xab\x0c\x46\x89\x16\xb3\x9b\xc4\xea\x6b\x1e\x93\xae\xeb\xef\x37\x64\xa4\x7b\x12\xa3\xd1\xc2\x1e\x8b\x31\x11\x84\x45\xa4\xbe\x85\x3e\x96\x8f\x79\x0b\xab\x64\xf3\x42\x7f\xf2\x23\x17\xfa\xf3\xa3\x70\x0c\x14\x46\xfe\x12\x32\xfa\x26\x27\xf5\x8d\x79\x13\x36\xe5\x3a\x6f\xce\x16\xb6\x21\x0f\x0d\x96\xb3\xed\x29\xd9\xd6\xce\xc6\x05\x92\x0b\xa9\xc8\x6c\xa5\xc5\xed\x78\x08\x61\x2f\xc9\x43\x1d\x70\xe9\x9e\xfe\x06\x4e\x7d\x51\xea\x08\xc7\x7b\x0d\x92\xed\xca\x5e\x7e\xe8\xf3\x74\x01\x30\xcd\x53\xbd\x77\xcb\xe7\xb9\xeb\x8e\x62\x9a\x05\x79\x78\xd7\x83\xdc\x93\x05\xaa\x76\xad\x1c\xb5\x87\x30\x80\x15\xb6\x87\xa2\xc7\x25\x3b\x7f\xfa\x53\xdf\x68\x67\x2c\xb4\x6a\x4a\xa5\x67\xbf\x44\x11\x17\x46\x1c\x8e\xed\x79\x37\xe6\x87\x4e\xbf\x73\xdf\xed\x9f\xa3\x0e\x8a\xb1\xc2\xfa\x80\x0b\x32\x17\x44\x12\xa6\xc0\xb4\xa3\xbf\x57\x0b\x34\xe3\x31\x49\x8c\x11\xe2\xa3\x96\xfe\xd1\x25\x56\xf8\x02\x2b\x9c\xf0\xc9\x19\xea\xc0\x3f\xf5\xc7\x54\x22\x9c\x48\x8e\xb0\xdb\x56\x24\x76\x4d\x60\x16\x3b\xd6\x82\x51\xc4\x67\x73\x9a\x64\xde\xa6\xcc\xde\x46\x59\x4c\x9f\x68\x9c\xe2\x04\xf1\x91\xe6\x2a\xf2\x6c\xc0\xba\x4f\x84\xa9\x14\x27\xc9\x02\xe1\x24\x41\xb6\x5b\xf7\x02\x92\x53\x9e\x26\xb1\x6e\xd7\x8d\x52\xd2\x19\x4d\xb0\xd0\x32\xad\x19\xed\x8d\x6d\x0b\xf5\xa7\x24\x1b\x2b\x8c\x4b\x53\x73\x86\x1f\x89\x44\x54\xa1\x39\x97\x92\x8e\x92\xfc\xcc\x3f\xf4\x10\x8c\xfb\xe2\xaa\x07\x26\x9e\x48\x21\x6e\x78\xa8\xeb\xdc\x9a\xf4\x5c\x8f\x33\xcc\x18\x81\x8e\xb9\x9a\x12\x61\xbb\xb7\x2f\xbf\xb6\xb5\xe6\xe1\xfa\xfe\xb6\x7b\xd1\xfb\xd8\xeb\x5e\x2e\x9b\x6b\xfa\x9d\xfb\x9f\x97\x7f\xfd\x72\x73\xf7\xf3\xc7\xab\x9b\x2f\xcb\x4f\xae\x3a\x0f\xd7\x17\x3f\x0d\x6f\xaf\x3a\xd7\xcb\x0f\xed\xb6\x6a\x6d\xf9\xf1\x47\xb6\xb3\xb3\x75\x74\x46\xa1\x60\xd4\x5f\x63\xd9\x77\x6d\xd4\x3f\x79\xbb\x56\xfd\x31\x4d\xc0\xe8\xd0\xda\xa2\x9f\x59\x8d\xec\x97\x68\x8e\xa5\x34\x72\xa0\x19\xc1\xd9\x80\x7d\xe6\x42\xb3\xeb\x31\xd7\x1c\x51\xcb\x8a\x4a\xa4\x91\xa2\x6c\x92\x7d\x74\x8e\x06\xe9\x0f\x3f\xfc\x25\xba\xa2\xec\x11\xfe\x22\x87\x48\x9c\xe0\xf2\x08\x2e\x8f\x83\x73\x79\xfc\x5b\xc5\xa7\xfb\x77\x0f\x04\x1b\x7f\xb0\xf1\xef\xcf\xc6\x1f\x4c\xfc\xde\x18\x82\x7d\x7b\x5b\x42\x04\x03\x58\xb0\x6f\x6f\x4f\x88\x60\xdf\x3e\xd0\x19\x87\xe3\x1d\xec\xdb\xc1\xbe\x1d\xec\xdb\xc1\xbe\x1d\xec\xdb\xc1\xbe\xfd\xcd\xd8\xb7\x0f\x30\xe4\x29\x18\xf9\x83\x91\x3f\x18\xf9\x83\x91\x3f\x18\xf9\x83\x91\xff\x78\x8c\xfc\x5a\xda\xfd\x50\x0e\xfd\xdf\x13\x84\x8c\x16\x2e\xd9\x3c\x55\x20\x4a\xf2\x54\xe9\x3f\x75\xff\xb0\x57\x1a\x20\x00\xda\x19\x94\x3f\x11\x95\xbd\xa8\x45\xdb\xa3\x88\x15\xff\xc2\xc5\xe3\x38\xe1\xcf\xd9\xc8\x3f\x11\xa5\x07\x7f\x67\x7b\x09\xd0\x32\x01\x5a\x06\x05\xa8\x83\x5d\x43\x1d\x1c\x94\x89\x7a\x57\xfc\xdd\x7d\xfd\x4e\x2b\xff\x8a\xd4\xf2\xe2\x3e\x11\x33\xca\x9c\xec\x42\x99\x16\x72\x27\x82\x48\xb9\x2d\x07\xce\x1a\xce\x5e\x3f\x0a\x1e\x9c\x8d\x36\x1b\x7f\xe0\xbe\x81\xfb\xd6\x4c\x2d\x70\xdf\x37\xc6\x7d\x5b\x4c\x6d\xc4\xe3\x25\x75\xc2\x8c\xa4\xea\x49\xf3\x48\x76\xc6\xa1\x7e\x4f\x49\xbb\xb0\x83\x97\xd0\x1a\x8e\x5a\x51\x38\x86\x3b\xea\x00\xf4\x84\xc0\xd4\x03\x53\xaf\xa6\xcc\x51\x32\xf5\x63\xf4\x09\xec\x9f\xa7\x17\xbd\x28\xb9\x39\xa8\x02\xe8\xa1\x3e\xc6\xb3\x36\x84\xb3\x26\x42\xd3\x0b\xc0\x7c\x91\x6b\xa2\x18\xe6\xb8\xe2\xaa\x28\xbc\x7c\x34\x76\xa5\xc2\xa8\x5f\xfe\xae\x78\xe3\x68\x03\xdf\x4a\xb0\x65\x88\xa5\xdc\x90\x50\x6f\xf8\xd2\x7c\xb9\x48\xc8\x97\xbf\xed\xbe\xd9\x3b\x2d\x5c\x69\xf6\x3f\x81\xe1\x07\x86\x1f\x18\xfe\x2b\x31\xfc\x0d\xe8\x1e\x54\xb8\xa5\x4b\xad\x12\xcc\xaf\x2d\x7a\xdf\x3a\xa9\x7c\x6b\xe4\xee\xb5\x4e\xd6\x5b\x91\x9d\x57\x99\x8e\x57\x95\x7f\xb7\x9c\x70\x57\x99\x61\xb7\x5d\x4a\xdd\xa6\x77\x75\xfb\x24\xb9\x4f\x44\x15\x5e\x3e\x1a\xfd\xb3\x30\xea\x97\xbf\xac\x5f\x3d\x18\xf4\xb5\xf8\xf4\xb7\x97\x10\x18\x32\x00\xf7\x48\xba\xb7\x2e\xd6\x1c\x6e\x8e\xdf\x37\x90\xd4\x17\xb2\xf8\xd6\xa2\xd1\xdb\x4a\xdb\x7b\xab\x79\x7a\xc7\x99\x98\x17\x32\xf1\x42\x26\xde\x4e\x55\xde\xd2\xd3\x6f\x2a\x13\xef\x98\x53\xef\x5e\xde\x3c\x11\x4c\x0e\x87\x6f\x72\x08\x16\x07\xfb\x9f\xa0\x7d\xaf\x3d\xf3\x20\xda\x07\xed\xbb\xcd\xcc\x83\xf6\x1d\xb4\xef\x03\x3c\xa2\x41\xfb\x0e\xda\x77\xd0\xbe\x83\xf6\x1d\xb4\x6f\x14\xb4\x6f\xaf\xa1\xd7\x02\x6c\x38\x04\xe7\xe6\x51\xd9\x1c\xf2\xa9\x0f\xdd\x01\x5f\x06\x39\x28\xb0\xdd\x36\xb8\x07\xf0\x97\x53\xea\xd7\xc5\xe1\xad\xd5\xd2\x2f\xf3\xc1\x76\x81\x49\xfe\x66\x59\xc5\x0a\x85\x7d\xe9\xbb\xa3\x88\x11\x58\x1a\x75\x48\xb7\xdd\x54\xe4\x79\x25\xa1\x61\x4f\x14\x38\x92\xeb\x6b\xfd\x85\x7a\xc3\xba\x64\xd0\x21\xb7\x4f\xa1\x3b\x1a\xdd\xf1\x78\x74\xc6\x97\x97\x2d\xde\xa2\x38\x11\xa4\x09\x6f\x0c\xe1\xe2\x0d\x17\x6f\xb8\x78\xc3\xc5\x1b\x2e\xde\x90\x81\x6f\xdf\xdf\xab\x3c\x51\x12\x26\x5a\x01\x34\xee\xbc\x32\x50\x85\x28\xe1\xdd\xc0\xab\xea\xfc\x94\xbf\xa6\x44\xfe\xf5\x28\x65\x8a\x97\x28\xf5\x13\x84\x8a\x23\x11\x2a\xde\xa4\x2d\x29\x48\x4a\x41\x52\xaa\xa6\x4c\x2b\x49\x69\xc0\xfa\x53\x4d\x87\xd9\x88\xb2\xcc\x9b\xe7\x76\xc8\x1f\x1d\xb9\xfe\x88\x74\x7f\x28\x65\xf4\xf7\x94\x24\x8b\x9c\x27\xc9\x72\x6b\x19\x5e\x34\x3a\x45\x9a\xce\x44\x28\xa0\x37\x67\x8a\x7c\x55\x12\x9d\xa2\x84\x3e\x12\xf4\x5e\x33\x66\xd4\xb9\xed\xbd\x3f\x41\xef\xaf\xa0\x6c\x1d\x9a\x27\x98\xc9\xf7\x07\xe3\xb8\x09\x60\xfd\xfb\x02\xeb\x0f\x58\xfd\x01\xab\xbf\x2d\x81\x02\x56\x7f\xc0\xea\x3f\x5e\xac\xfe\x9d\xe9\x87\x1b\xe2\x72\xbe\x8a\xa6\x78\x9c\xbe\xec\xa0\x29\xa2\xa0\x29\x06\x4d\x31\x68\x8a\x41\x53\x3c\x12\x4d\xf1\x30\x28\x1c\xd4\xc4\xa0\x26\x06\x35\x71\x87\xc4\x09\x6a\x62\x50\x13\x83\x9a\xb8\xa4\x26\x1e\xaf\xe7\xf0\x2f\x41\x1f\x0c\xfa\xa0\xff\xfb\xf1\xe9\x83\x41\x75\x0a\xaa\x53\x35\x65\x8e\x53\x75\x3a\x18\xd9\xe7\x18\x43\x8a\x82\x52\xd8\x9e\x10\x41\x29\x6c\x4d\xaa\xa0\x14\x36\x10\x27\x28\x85\x41\x29\x0c\x4a\x61\x6b\xa5\xf0\x98\xdc\x85\x41\x3b\x0c\xda\xa1\xff\x7b\xd0\x0e\x83\x76\x18\xb4\xc3\xe0\x58\x0b\xaa\x61\x50\x0d\x83\x6a\x18\x54\xc3\x55\xc4\x09\xaa\x61\x50\x0d\xbf\x2d\xd5\x90\x3c\x11\xa6\x24\x14\x43\xf4\x15\xa5\x77\x73\x2e\xeb\x15\x3c\x9f\x3b\x54\x28\x77\xd0\x66\xb1\x28\x21\xa0\xb6\xfd\x86\xa6\x58\x22\x1e\x45\xa9\x28\x9d\x81\xb2\x7a\x77\x21\x08\x56\x04\x5a\xd0\x1f\x1e\x83\x5a\xb7\x3c\xdd\x97\x02\x20\x1e\xf1\x78\x69\xb7\x9b\x83\x50\xf5\xa4\x59\xcc\xda\xd9\xd4\x7f\x4f\x49\x3b\xad\x76\x8f\x9b\x5a\x61\xf9\xb8\xe3\x4d\x5d\x00\x9a\xde\x68\x53\x43\x0b\xc7\xb2\xa9\x97\xa7\xfb\xcd\x6c\xea\xaa\xa9\x1f\xc2\xa6\x7e\xe6\xe2\x71\x9c\xf0\xe7\x1d\x6f\xec\x2f\xb6\xd9\xed\x36\x77\xd6\xca\xb1\x6c\xf0\xea\x69\x7f\x33\x9b\xbc\x6e\xfa\xaf\xbb\xd1\xb3\xfa\x10\xad\xb7\x78\x5f\xd0\xc9\x44\xab\x19\xa0\xe1\xe9\xad\x68\x4d\x1f\x0d\x00\x49\x79\x45\x84\x95\xdb\x3a\x7b\xf5\x18\xb6\x74\x36\x58\x33\xf6\x6f\x66\x2f\x2f\xcd\xfb\x40\x36\xf1\x2b\x81\x76\xb4\x2b\xf8\x71\x45\xa5\xca\xde\x3c\x8e\x6c\xab\x6c\xb8\x2f\xe1\x37\x09\xf9\x3b\xc1\xcd\x10\xdc\x0c\x87\xef\x66\x38\x18\x83\x5a\x30\xc9\xef\xc9\x24\x4f\x65\xb0\xc9\x07\x9b\x7c\x5b\x02\x05\x9b\x7c\xb0\xc9\x1f\xaf\x4d\x7e\x4d\xdd\x61\xc3\x08\xad\x3a\x83\xd0\x3a\xfa\xc3\x27\x92\xab\x0f\xc7\xa5\x3d\x04\xcd\x21\x68\x0e\x41\x73\xd8\xb9\xe6\x70\x50\xe5\x08\x77\xc5\xa5\xdd\xd7\xef\xe6\x69\x3d\x4f\x7d\x98\xc7\x58\x11\x94\x31\x6f\xbb\x13\xf4\xc5\xa8\x78\x76\x08\xec\x7e\xd8\x92\xed\x9a\xbe\x8e\x94\xf3\x9a\xc1\xbf\x60\x79\xd6\xc0\x87\x03\x1f\x0e\x7c\xf8\xb0\xf1\xcd\x0f\xc7\x7d\xe0\xd8\xd3\xa1\xb8\x0f\x04\x89\xf8\x13\x11\xad\x7d\x61\x77\x04\x1c\x60\x20\xdd\xcf\x05\x79\xa2\x3c\x95\xc9\xe2\x54\xa4\x0c\x39\xdf\xb1\x77\x49\x41\x0c\xff\x33\x4d\x12\xc4\x99\x56\x15\x15\x16\xca\x3d\x66\x13\x34\x16\x7c\x06\xdb\x25\xc1\x52\xa1\x47\xc6\x9f\x19\x1a\x63\x9a\xa4\x82\xa0\x39\xa7\x4c\x9d\x0d\x58\x8f\xa1\x3b\x33\x46\xa8\xb9\x78\x82\x52\x49\x84\xd4\x47\x8d\x71\x85\xa2\x29\x66\x13\x82\x30\x5b\xd8\xe2\xe5\x39\x03\xd7\x9b\x34\x35\xb7\xa6\xee\xa2\x04\x58\x9f\x8d\x11\xac\x8d\x54\x22\x2a\x11\xf9\xaa\x04\x99\x91\x64\xa1\xfb\xd0\x57\x94\xe2\xc8\xd2\xc7\x0c\xd5\xee\x79\x22\x04\x17\x12\xaa\x35\x8e\x16\xff\xc4\x4c\x51\x46\x10\xe8\x74\xd2\x58\x12\x4f\xd1\x15\x97\x60\x62\xfa\xf9\x6f\x12\x45\x49\x2a\x15\x11\x27\x68\x94\x4e\xa4\x56\x6a\xe7\x09\x56\x63\x2e\x66\x7a\x84\x94\x49\x85\x47\x34\xa1\x6a\x71\x82\x66\x38\x9a\x9a\xb6\x80\x06\xf2\x64\xc0\x62\xfe\xcc\xa4\x12\x04\x67\xbd\xbb\x87\xe8\x3b\xff\x99\xd9\x00\xf2\xfb\x13\x38\x9b\x74\xa6\x35\x73\x6f\xf8\xf9\x8a\x9b\x35\xd1\x8d\x90\x18\x8d\x48\x84\x53\x69\xf3\x2e\x94\x58\x20\xf2\x75\x8a\x53\x09\x6b\xa7\xa7\x67\xeb\x5d\x46\x7c\x36\x4f\x88\x22\x88\x8e\x91\x12\xfa\xe2\xc2\x13\x4c\x35\xe9\xee\x09\x69\x21\x6d\xd8\x05\xb4\xbb\xfe\x37\xe0\x12\x33\x2e\x08\x8a\x89\xc2\x34\x69\xcc\xc5\xb1\xdf\x06\x27\xe9\x31\x71\xb9\xe2\x82\x1f\x04\x9b\x4b\xc0\xa0\xbf\x03\x9f\x3f\xb3\x9e\x86\x08\x27\x5b\xba\xff\xef\xec\xa0\xc2\xde\x3e\xae\xbd\x6d\x56\xed\x70\x36\xf7\x41\x7b\xfd\x8f\x6a\x4f\xbf\x90\xd3\x3f\x68\x57\x41\xbb\xaa\xa6\x4c\xf0\x8f\x87\x4c\xbc\xe5\x69\x05\xb7\x7f\x70\xfb\x07\xb7\xff\x2e\x89\x13\xdc\xfe\xc1\xed\xff\xcd\xba\xfd\x0f\xdc\xd3\x7f\x54\x1a\x43\xd0\x16\x82\xb6\x10\x7c\x31\x6b\x4e\xed\xe8\x64\xf4\x5d\x71\xe6\xcc\xd5\x1f\x93\x84\x28\x52\x6f\x7d\x24\x62\xa6\x75\x3b\x23\x75\x50\xa6\xc5\xd3\x89\x20\x52\x6e\xcb\x67\xb3\x86\x8f\x93\xdb\x66\xc3\x7f\x41\xff\x7e\x60\xbf\x81\xfd\x56\x53\xe6\x28\xd9\xef\xe1\x18\xd2\xbd\xc3\xfc\x52\x96\xf4\x8c\xff\x1e\x68\xa8\xd5\x51\x31\xe3\x17\x8f\xb4\x0a\x9c\x38\x70\xe2\x6a\xca\x04\x4e\x7c\xfc\x41\x49\xc6\xab\x3a\x9c\x27\x98\x0d\x69\x6c\x93\x13\x4c\x66\x42\x6e\xac\xd8\x97\x67\x53\x1f\xad\xd8\x00\xa6\x66\x00\xa5\xe2\x37\xfd\x49\x92\x3b\x3a\x10\x1f\xe9\x61\xac\x84\x8e\x35\xbe\x91\xdb\x04\xb3\x5e\x7c\x1c\x59\xcf\x95\xd3\x7f\x09\x67\xe8\xdb\x0b\x9e\xdd\xe6\x92\xc2\x0a\x9c\x6e\x98\x32\x63\x76\xcd\x81\x6f\x0b\x46\xe5\xc3\x98\xe8\x36\x57\x96\x37\x31\xef\xd6\x72\x97\x91\x47\x94\xc3\x9b\x76\xf0\xc5\x05\x54\xcc\xe0\x6d\x6a\x39\xe1\xe0\x6d\x3a\x5c\x6f\x53\x8b\x65\xdc\x8b\x0b\xf9\x85\x8f\xe7\x8b\xca\xac\x47\x2d\xa9\x06\x41\x15\x05\xb1\x2e\x88\x75\xf5\xb3\x0e\x62\x5d\x10\xeb\x82\x58\x17\xc4\xba\x20\xd6\xbd\xbe\x58\xd7\x62\x9a\xdf\x6c\x94\xc1\x2a\x51\xb5\x3d\xf2\xa9\xc9\xf1\x81\x54\xc0\x74\x9e\x70\x1c\x37\x45\x7a\xe5\xc2\xa4\x5f\x68\xab\x41\x02\x35\xad\xe7\x9f\x1d\x83\x00\x9a\x8f\xf6\x1b\xcb\x7f\x5a\x9e\xf8\xa1\x78\x0b\x5e\x0b\x03\xb5\x7a\xbf\xaf\xa1\x73\xc9\xbf\x1e\xd7\x8e\x0f\x90\xa8\x01\x50\xa3\x62\x6a\xc1\x77\x1d\x52\xbe\x42\x6e\xd4\x9b\x53\xdc\x43\x6e\x54\xc8\x8d\x0a\x66\x8d\xe6\x69\x07\xb3\xc6\x9b\xc8\x8d\x5a\x5f\x99\xd8\x63\xd9\xea\xed\xd5\x8a\xa3\x08\x39\x0a\x6a\x45\x50\x2b\x82\x5a\x11\xd4\x8a\x43\x2c\xe8\x1c\x74\x8a\xa0\x53\x04\x9d\x22\xe8\x14\x41\xa7\xd8\x39\x19\x83\x4e\xd1\x42\xa7\x80\xbf\x2c\x60\xe9\xda\x0a\xc6\x9a\x8a\xc5\x0a\x54\x86\xfc\xa3\x23\xd3\x2a\x82\x46\x11\x34\x8a\xa0\x51\xbc\xb8\x46\x71\x30\x13\xb2\xec\x73\xc5\x9c\xee\xdd\x82\x94\xe0\xa1\x0f\x6f\x3e\x6e\x44\x43\x68\x69\x85\x30\x51\x54\xd0\xb2\x5d\xa7\x3f\xf5\x75\x14\x13\x9b\x0a\x62\x79\x1e\xba\x89\x22\x2e\x0c\x53\x8e\xed\x2e\x37\xf2\x44\xa7\xdf\xb9\xef\xf6\xcf\x51\x07\xc5\x58\x61\xbd\xad\x05\x99\x0b\x22\x09\x53\x20\xab\x11\x88\xca\x05\x90\xee\xc4\x48\x15\x1f\xf5\xfd\x83\x2e\xb1\xc2\x17\x58\xe1\x84\x4f\xce\x50\x07\xfe\xa9\x3f\xa6\x12\xe1\x44\x72\x84\x1d\xe9\x49\xec\x9a\xc0\x2c\x76\x07\x0a\x03\xf6\x34\x4d\x32\xe5\x34\x53\x2f\x28\x8b\xe9\x13\x8d\x53\x9c\x64\xc1\xce\x03\x53\x60\x38\xc5\x49\xb2\x40\x38\x49\x90\xed\xd6\xbd\xe0\xe0\xac\x47\x24\x1b\xa5\xa4\x33\x9a\x60\xa1\xd9\xb1\x19\xed\x8d\x6d\x0b\x69\xc5\xd8\x8d\x15\xc6\xa5\xa9\x39\xc3\x8f\x44\x22\xaa\xd0\x9c\x4b\x49\x47\x49\x7e\x00\x1e\x7a\x08\xc6\x7d\x71\xd5\x03\x99\x2d\x52\x88\x1b\xce\xe1\x3a\xb7\x0a\x8c\xeb\x71\x86\x19\x23\xd0\x31\x57\x53\x22\x6c\xf7\xf6\xe5\xd7\x16\xbf\x1e\xae\xef\x6f\xbb\x17\xbd\x8f\xbd\xee\xe5\xb2\xfc\xd5\xef\xdc\xff\xbc\xfc\xeb\x97\x9b\xbb\x9f\x3f\x5e\xdd\x7c\x59\x7e\x72\xd5\x79\xb8\xbe\xf8\x69\x78\x7b\xd5\xb9\x5e\x7e\x68\xb7\x55\x6b\x51\xce\x1f\xd9\x3e\x64\x39\xf7\x75\x0b\x84\x00\x7b\xb8\x14\x56\xa9\x34\xd5\xa0\x05\x99\x50\xa9\x80\xfd\xb7\x91\xc2\x56\x03\x03\x1c\xad\xf4\x15\xaa\xb0\x04\x59\x2c\xc8\x62\x41\x16\x3b\x36\x59\xec\xe5\x4c\x02\x47\x14\xa6\xf8\x97\xe3\xba\x7b\x02\x88\x7b\x60\xce\x87\xcf\x9c\x0f\xce\xf5\x76\x30\xa6\xf3\x63\x04\x88\x0c\x4e\xc5\xf6\x84\x08\x4e\xc5\xf6\xb4\x0a\x4e\xc5\x06\xe2\x04\xa7\x62\x70\x2a\x7e\xc3\x4e\xc5\xa3\x8c\x4d\x0c\xaa\x84\x7b\x2f\xa8\x12\x41\x95\x78\xa3\xaa\xc4\xc1\x50\x38\xe8\x11\x41\x8f\x08\x7a\x44\xd0\x23\x9a\x89\x13\xf4\x88\xa0\x47\x04\x3d\xe2\xd8\xe2\x11\x8f\x4b\x93\x08\x5a\x44\xd0\x22\x0e\x5b\x8b\x38\x98\x09\x1d\x8f\xb7\xb8\xdd\x7c\x42\xe4\x5e\x88\xdc\x0b\x91\x7b\xb5\x91\x7b\x6f\x54\x93\xdf\x95\xfc\xe6\xbe\x3e\xb4\x80\xc4\xe3\x12\xbf\x42\xad\xa2\xec\x69\x10\xc6\x82\x30\xf6\x8d\x0a\x63\x07\x04\xa2\x78\x10\x25\x97\x66\x58\x45\x53\x3c\x4a\xc8\x30\xb3\x65\xc9\xb6\xea\xfd\x15\x95\x4a\xa2\x28\x95\x8a\xcf\xea\x2f\x97\xcf\xae\x87\x4e\xd6\xc1\x05\x67\x63\x3a\x49\xcd\xdd\xf2\x1b\x6c\x7d\xef\x44\xe7\x02\xee\x62\x4e\x56\xf9\x15\x2b\x5a\x3f\x8a\x6b\xa9\x7a\xe8\x2f\x75\x3b\xad\xa3\x8f\xe4\xb6\x4b\xab\x4c\x68\x11\x72\x78\xd7\xbd\xbf\x79\xb8\xbb\xe8\x9e\xa3\x0e\x88\x58\xe0\x4e\x30\x5b\x81\xfe\x53\x4f\x0a\x29\x2c\x1f\xf3\xb5\x14\x66\x9b\x4b\x90\xb3\xc1\x7f\xa1\x45\x7e\x74\x8a\x2e\xae\x1e\xee\xfb\xdd\xbb\x9a\x06\xed\x46\x81\xc2\x8b\x64\x36\x4f\xb0\x22\x31\x7a\x4c\x47\x44\x30\xa2\xa5\x9d\x28\x49\xb5\x70\x93\x7b\x35\x4c\xa3\xdd\xff\xea\x5e\x3c\xf4\x7b\x37\xd7\xc3\xbf\x3f\x74\x1f\xba\xe7\xc8\xed\x38\xdd\xac\x1e\x97\x1e\x45\xbc\x60\x78\xa6\x15\x2b\xfd\x43\x5e\xea\xf1\xf7\x94\xa4\x04\x61\x29\xe9\x84\xcd\x08\x53\xe5\x16\xdd\x80\xaf\x3a\x3f\x76\xaf\x8a\x2d\x4f\x09\xfa\xf9\x6f\xf9\xa0\x12\x3c\x22\x89\x75\xb3\x80\xe7\x40\x6f\xf4\xbc\x23\xeb\x7f\x49\x0d\x55\xff\xfe\xd0\xb9\xea\xf5\x7f\x1d\xde\x7c\x1c\xde\x77\xef\x7e\xe9\x5d\x74\x87\x56\x58\xbe\xe8\xe8\x7e\x0b\x3d\x59\x99\x1a\xfd\x9e\xe2\x44\x2b\x5d\x7c\x0c\x7e\x0b\x1a\x11\xf4\x3c\x25\x0c\xa5\x0c\x76\x9c\xd1\xe4\xb4\x7a\x97\x75\xaa\x4f\x99\x99\xd1\xed\xd5\xc3\xa7\xde\xf5\xf0\xe6\x97\xee\xdd\x5d\xef\xb2\x7b\x8e\xee\x49\x02\xba\x8e\x23\x3a\xac\xe2\x3c\x49\x27\x94\x21\x3a\x9b\x27\x44\x53\xc3\xe8\x72\x23\x32\xc5\x4f\x94\x0b\x7b\x74\x27\xf4\x89\x30\x43\x47\x38\xb3\xd0\xbe\xd3\x29\x86\x1e\xe9\x6e\xae\x3f\xf6\x3e\x9d\xa3\x4e\x1c\x67\x73\x90\xd0\x46\x61\xe7\x3c\x73\xf1\x38\x4e\xf8\xf3\x69\x71\xd8\x9a\x39\x40\xf7\x66\x13\xf1\x27\x22\x04\x8d\x49\x69\x1f\x75\xee\xef\x7b\x9f\xae\x3f\x77\xaf\xfb\x40\x31\x25\x78\x22\xd1\x94\x3f\x83\x85\x1e\x66\x08\x86\xfb\x27\x4c\x13\xe8\xcc\x2d\x16\x67\xe8\x79\x4a\xc1\xab\x43\xa5\x4f\x30\xa3\x76\x8a\x94\xbd\xba\xd1\xb9\x70\xf0\x96\xb5\xb1\xf2\x49\x5a\x7e\xa3\x74\x2c\x9a\x5e\x28\xec\xf2\xe5\x17\x57\xed\xd6\xe5\x2f\x4a\xdb\xad\x5e\x07\x5d\xda\x2f\xf5\x33\xcd\xd7\xba\xb5\x0a\x5a\xa4\xe1\xcb\x5d\xb3\x44\x09\x1a\xc9\x0f\xd9\xbe\xda\x2f\xc8\x18\x91\x7a\xc3\x2a\x3a\x23\xc8\xf6\x6c\x4f\xea\x96\xb5\x6a\x3f\x11\x95\xbd\xf8\xd9\x34\x7c\x14\x59\x69\x5f\x2c\x47\xc9\x06\xff\x89\x28\x3b\xfe\x90\xa0\x16\x12\xd4\x6a\xa6\x16\xb4\xdc\xed\xb5\xdc\x63\xab\xc8\x1b\x93\xf9\x72\x87\xa5\x89\xc1\x3b\xc6\x5f\xb9\x14\x5e\x63\x2c\xc1\xd6\x16\x9e\x90\x27\x92\x80\x20\xab\x04\xd6\x7a\xb1\x15\xcf\x46\x82\xe0\x47\x2d\xd3\xc6\xfc\xd9\x17\xce\x62\xa2\x30\x4d\xe4\x2b\x85\xdf\xfc\xe5\xcf\xaf\x7a\x1f\x1e\xef\x15\x18\x6e\xc0\x60\x12\x0d\x97\xc5\x37\x78\x59\x1c\xa3\x53\x2a\xdc\x81\x87\x72\x07\x6a\x72\xc7\x43\xe7\x9e\xfe\xf0\x3f\x05\xa3\xdc\xbf\xf6\xa5\x1f\xde\x41\xbc\xaf\x6c\xba\x08\xbd\x0a\x9b\xbf\x59\xa7\xf6\x8a\x1b\xd1\xfb\xe2\x28\xf4\x41\x6f\xbc\x87\x64\x6a\xbd\xf3\x2d\xdf\xee\x9e\x98\x11\x85\x63\xac\xb0\x3e\x42\x13\xa2\xce\xd0\x0d\x83\x67\x7d\x2c\x1f\x4f\x90\xbb\xd7\x35\xef\xcc\x5d\x0b\x2f\x50\x5c\xb3\xa5\xcd\xea\xb5\x83\x11\x0e\x91\xa3\x07\x2d\x7d\x97\x53\x0b\x82\x57\x48\x2f\x3a\x64\x1c\x18\xf7\x75\xab\xe8\x9d\xdd\xdd\xca\xa6\xc5\x23\xbe\x98\x5f\x36\x5e\x67\xa7\xd7\x74\x0a\x43\x0f\x77\xb0\xf9\x4f\xb8\x83\xc3\x1d\x1c\xee\xe0\x26\xca\x84\x3b\xf8\x88\x03\xba\x2a\xae\xac\x57\x8d\xe8\x6a\x63\x56\x30\x36\x85\xdc\xa0\xb0\x26\xf0\x5c\x6e\x43\x58\x09\x17\x51\x21\xb5\xac\xc4\x8a\xc8\xbf\xa1\xe4\x38\xfc\xcb\xde\x2c\x5f\x02\x2f\x62\xa7\xc2\x8a\xc9\x58\x0e\x56\x85\x3d\x4a\x34\x6f\x4f\x9c\xd9\x46\x96\xc1\x0a\x2e\x19\x4c\x99\xb9\x93\xf2\xec\x25\xf9\x02\x3b\x6c\xcd\x89\x6e\x23\xd9\x78\x13\xf3\x84\x1b\x27\xb3\x78\x44\x39\x90\x45\xdd\x0b\xac\xc4\xeb\xd8\xf1\x5f\x1f\x4a\x82\xbc\x5d\x24\x89\x00\x96\xb0\xd6\x21\x09\x60\x09\x2f\x01\x96\xd0\x62\x19\xf7\x82\x80\xf2\xc2\xc7\xf3\x35\x55\x87\xe3\x71\x42\x1e\x99\xce\x70\x54\xfa\x42\xf0\x41\xee\xdf\xfe\x19\x4c\x85\xc1\x54\x58\x4d\x99\x60\x2a\xfc\xb6\xc2\xb5\x76\x75\xdf\xbb\xaf\x5f\xdb\x0b\x79\x64\x37\x73\x70\x42\x86\x4b\x38\x5c\xc2\xe1\x12\x0e\x97\xf0\xae\x28\x1c\xfc\x75\x6b\x2a\xdd\x47\xe1\xa5\x3b\xb2\x6b\x3d\x38\xe9\xc2\x8d\xef\x3e\x0e\x2e\xad\x55\xf3\x0c\x2e\xad\xe0\xd2\x0a\x2e\xad\xe0\xd2\x0a\x2e\xad\xec\xf7\xe0\xd2\x7a\xd1\xdd\xfa\xcd\x9a\xed\xaa\x35\x06\x1e\x93\x61\x05\x92\x4c\xf6\xd3\xd0\x4f\x1b\x2c\xfc\x5a\x70\xdf\x15\x9e\xf8\xbe\xbc\xc2\x83\x1c\xfe\x1d\xfa\xa5\xf1\xda\x79\xf8\x4d\xe6\x44\x1e\x93\xd6\x79\xf7\x85\x97\x0f\x3d\x2e\xd0\x4d\xd4\xa8\x1e\xfe\xc8\x5f\x20\xcf\xbe\xbc\x13\xde\x58\xf4\x59\xcd\xae\x7e\x8b\x96\xba\x8a\x33\x1a\xcc\x76\x2b\x09\xf5\x86\x01\x07\x2c\x13\x7e\x81\xf1\xbc\xfc\x1d\xe6\x80\xff\x86\x15\x37\x59\xf5\xb3\xfc\x3e\xab\x7e\x9e\xdd\x6a\xd5\x8f\xf7\x53\x22\xb1\xfd\xa5\x06\x76\x34\xff\xed\x23\x09\x77\xf7\x87\xfc\x12\xb6\xb4\xda\x8d\xf1\xc6\x2e\xb6\xc6\x4d\xfe\xe6\xae\xb7\xa6\x23\x1b\x2e\xb9\x96\xe4\x7a\xab\x57\x5d\xa8\x71\xd8\x64\xc5\x0b\x45\x04\x0f\xd0\x4a\x11\x8c\x88\xc1\x88\x78\x8c\x46\x44\x13\x7c\x30\x9c\x63\x41\x98\xaa\xd0\x2d\xca\xd7\x09\xbc\xee\x17\x9d\x72\x52\x07\x34\x80\xb4\x68\x8f\xec\x85\x9c\x5d\x55\x6f\x2c\x50\xbe\xa4\xbd\xbc\x61\x3b\xdb\x81\xeb\x23\x87\x63\x66\x7b\xab\x52\x7a\x30\x42\x05\x23\x54\x79\x9e\x2f\x67\x84\xda\x80\xee\xc1\x59\xd4\x78\x55\x7d\x23\x86\xb4\x03\xbf\xb7\x0e\xc9\x8e\xf6\x56\x6f\xae\x60\x5f\xda\x01\xb9\xde\xea\x2d\xf6\x5a\x26\xe5\x97\xd7\xd2\x83\x25\x2d\x58\xd2\x82\x25\x2d\x58\xd2\x82\x25\xcd\xff\x3d\x58\xd2\x9a\xe8\xfe\x62\xea\x89\x15\x81\xbc\xea\xa3\x1f\xfe\x27\xff\x3b\x53\x4b\x7c\xd5\xa2\x29\x83\xf5\x42\x10\x38\x15\x5c\xd8\xfc\xc7\x5d\xd4\x27\xc5\xaa\x20\xf4\x42\x45\x83\x06\x5d\xc4\x64\x15\xdd\x9a\xb7\x8f\xab\x2c\xe9\xd2\xa0\x5f\x36\xff\x75\x79\xe1\xdb\x1d\x20\xb7\x32\xd4\x94\xd8\xf4\xea\x38\x6a\xb9\x9b\x8f\xf3\x8b\x41\xa2\x67\x9a\x24\x5a\x92\xb1\x52\xdb\x81\x48\xa3\xaf\x9e\x15\x57\xbb\xf2\xaf\x9a\x1b\x57\xc5\x1d\xaa\x58\x42\x1b\xeb\xf8\xae\xea\x14\xbb\xcd\x06\x25\x64\x41\xef\x5b\x61\x4e\x7f\x1b\x9c\xe0\x13\x51\x2f\xc5\x06\x36\x3d\xfb\x8d\xe7\x5e\x90\x31\x11\x84\x45\xe4\x00\x33\xb2\xd6\x49\x15\xfc\x62\x26\x69\xf3\x04\xb3\xf2\xdd\xfe\x54\x15\xb7\x7a\x5a\x41\xd4\x0d\xd5\x9b\x43\xf5\xe6\x50\xbd\xb9\x7c\xd4\x43\xf5\xe6\xb7\x51\xbd\xb9\x05\x97\xdd\x81\x6d\xaf\xd9\x60\x7b\xa0\x7a\x97\xfb\xfa\x5d\x4c\x12\xa2\x48\xad\xa0\x74\x09\x8f\x5f\x4b\x50\x32\xbd\xbf\x0d\x59\xc9\xcc\x25\x88\x4b\xdf\x8c\xb2\xe4\x16\xfc\x20\x94\x25\x73\xd6\x7c\x9d\x09\x92\x2b\x3c\xe5\xda\x64\x54\xbc\x4d\x33\xcb\x51\x24\x50\x1c\x8e\x9d\x65\xef\x97\xe2\x4b\x33\x87\x60\x43\x5a\x1e\x49\xb0\x21\x6d\xc7\x16\x0b\x3f\x56\xa0\x30\xbd\x38\xab\xdc\x44\xc0\x2a\xf0\xcb\x4b\x78\xfd\x38\xb9\x66\x79\xec\xc7\xcc\x3b\xbd\xd6\x0e\x83\x89\x7c\xbb\xec\x73\xe9\x88\xb7\x9b\xb8\x0d\xfd\x39\xde\x79\x1f\xca\xb5\x51\x77\xac\x0f\xf9\xf2\x28\xd6\xd1\x3a\x5e\x8f\xc4\x31\xb1\xff\x57\x71\x49\xbc\x39\x31\xf9\x9b\x33\x1a\x04\x1f\x4b\xf0\xb1\x04\x1f\x4b\xf0\xb1\x04\x1f\x0b\xda\xd4\xc7\xb2\x2b\x49\xeb\xa8\x1d\x12\xc7\x29\x2a\xbd\xac\x47\x22\x48\x4b\xc7\x2e\x2d\x1d\x8a\x52\x78\x5c\x2e\x96\x2d\xcb\x2a\x1f\x8a\x5e\xf8\x96\x8c\x83\xc7\xa5\x23\x1e\x9c\x39\xf0\x9b\x63\x7c\x9b\x99\xfe\x8e\x76\xba\x41\x2b\x0e\x5a\x71\xd0\x8a\x83\x56\x1c\xb4\x62\x14\xb4\xe2\xb5\xb5\xe2\xb7\x24\x28\x1e\x9d\x86\x1c\x64\xc5\xd7\x9e\xf0\x37\x26\x2b\x1e\x8a\x4d\xa0\xee\xe4\x1e\xa8\x65\xe0\xdb\x0c\x28\x3a\xe2\x9b\x20\xe4\xbc\x22\x6f\xe9\x42\xc0\xcd\xb7\xc2\x47\x0f\x3c\xe0\xe6\xed\xd9\x55\x8f\x98\x47\x86\x6c\xe0\x20\x56\xee\x68\xba\xc1\x04\x19\x4c\x90\xc1\x04\x19\x4c\x90\xc1\x04\x89\x0e\x3b\xf9\x79\xa5\xc1\x29\xe4\x3f\xef\xcb\xb0\x7a\xc4\x92\x62\xc8\x85\x0e\xc2\xe2\xee\xa6\x7b\xa8\xba\xf3\x21\xd9\x20\xe5\xfa\x75\x23\x56\x22\x71\xdb\x69\xff\xd6\xc0\xc0\xae\xa8\x74\x8a\xee\x31\xf1\x2b\xb9\x6f\x96\xb4\x0d\xfc\xae\x5b\xd1\x37\x8b\xbe\xbb\x45\x35\x7a\xe0\x5d\x6f\xb4\x1c\x7d\x00\x07\x6e\x20\x4e\x00\x07\x5e\x8b\x9b\x04\x70\xe0\x97\x00\x07\xde\xb9\xb2\x32\xe7\xb2\xfe\xe6\xbe\x23\x13\x2a\xe1\xc8\x36\xd4\x7c\x72\x77\x36\x14\x1e\x80\xad\xf0\x51\xbf\x80\x62\x32\x4f\xf8\x02\xec\x43\x0d\xd7\xb9\xeb\xe2\x76\x49\xa2\x3e\xf4\x1b\xdd\x8d\xfc\xa5\x74\x8e\x43\x91\x49\xf3\x79\x1f\x84\x14\xea\x87\xc4\x97\x8a\x99\x35\xb9\xb7\x1f\xac\x4f\x1b\x4c\x7f\x54\xc2\xfd\xb4\x72\x8b\x0f\x58\xf5\x03\x67\x02\x1b\x11\x77\x21\x8e\x52\xe5\x15\xf5\x90\x5a\xc2\x9a\x13\xa1\x16\xde\x9b\x64\x36\x57\x8b\xff\x1c\x30\xaa\x32\x07\x22\x9d\x30\x2e\x0c\x7b\xd3\x1f\x4f\x31\x8b\x13\x22\xf4\xed\xea\xda\x89\x30\x63\x5c\x81\xdc\x01\x13\x88\xd1\x13\xc5\x46\x4a\xe9\xdc\xf6\x5a\xbb\xd1\x8f\x29\x82\xea\x65\xfd\xe4\x6f\xaf\xd8\xf3\x4a\x78\xf8\x4f\x09\x1f\xe1\x24\x59\xa0\xb4\x68\xaf\xd0\x0d\x1c\xc8\x1c\x0e\x85\xf7\xbd\x3a\xb3\x0b\x2c\xae\x2d\x8b\x0b\x1c\x2e\xf0\x83\x56\x23\x39\x46\x7e\xa0\xb0\x7c\xf4\xab\xed\x81\x0c\xe4\x0a\x26\x16\x2a\x4d\x95\xcb\x4e\xfd\xab\xcd\x7b\x85\xb2\xb2\x2b\xde\xf5\x0b\xcd\xae\x78\xb5\x54\x7a\xb6\xf8\xcc\x16\xa3\x85\xc7\x30\xbd\xf2\x38\xdc\x8f\x7e\x87\xee\xb7\xbc\x65\xf7\xcb\x13\x11\x92\x72\xfb\x9a\x20\x4a\x2c\x86\x58\x29\xcd\x90\x76\x59\xef\xb6\x8f\xe5\x63\xeb\x7a\xb7\x85\x97\x0f\x5d\x02\x2b\x14\xbc\x2d\x8c\xfc\x05\x0a\xde\xae\xde\xc6\x6f\x4e\x46\x6b\x79\x24\x57\xcc\xfb\xf8\x8a\x27\xb6\x65\x30\x6b\x4c\xfc\x5b\x29\xa4\xd8\x8e\xe1\xae\xf2\xd9\x1d\x63\x51\xc5\xa6\x1b\xe4\x60\x46\x58\xba\xc4\xde\xe2\xc9\x2d\x5e\xc9\xe1\x88\x36\xd1\xa8\xed\x59\x3c\x9a\x13\x58\x92\xb4\x56\xcc\xed\xde\x2d\x90\x7d\xdd\xed\x84\xc3\x9b\x57\x41\x58\xdc\xf5\xa8\xf6\xe3\xf3\xf4\x56\x63\x9d\x30\xd7\x9e\x2b\x08\x68\x3c\x38\xd9\x19\x72\x81\xaf\xd9\xd1\x54\x53\x00\x4d\xa7\xd2\xaf\x21\x18\x71\x61\xa4\xcd\xd8\x9e\x59\xe3\xc3\xe9\xf4\x3b\xf7\xdd\xfe\x39\xea\xa0\x18\x2b\xac\x0f\xa9\x20\x73\x41\x24\x61\xca\x98\x22\x98\xa2\x6a\x81\x66\x3c\x26\x89\xb1\x03\x18\x77\xc1\x25\x56\xf8\x02\x2b\x9c\xf0\xc9\x19\xea\xc0\x3f\xf5\xc7\x54\x22\x9c\x48\x8e\xb0\xdb\x38\x24\x76\x4d\x60\x16\x3b\xf6\x80\x51\xc4\x67\x73\x9a\x98\xd8\x4b\xdf\xa5\x4b\x59\x4c\x9f\x68\x9c\xe2\x04\xf1\x11\xd8\x50\xce\x06\xac\xfb\x44\x98\x4a\x41\xc7\xc5\x49\x82\x6c\xb7\xee\x05\xcf\x80\xe1\x46\x29\xe9\x8c\x26\x58\x68\xe9\xd1\x8c\xf6\xc6\xb6\x85\xfa\x53\x92\x8d\x15\xc6\xa5\xa9\x39\xc3\x8f\x44\x22\xaa\xd0\x9c\x4b\x49\x47\x49\x7e\x8c\x1f\x7a\x08\xc6\x7d\x71\xd5\x03\x3f\x59\xa4\x10\x37\x7c\xd0\x75\x6e\x9d\xc6\xae\xc7\x19\x66\x8c\x40\xc7\x5c\x4d\x89\xb0\xdd\xdb\x97\x5f\xdb\xe5\xf5\x70\x6d\x43\x1a\xbb\x97\xcb\x3e\xaf\x7e\xe7\xfe\xe7\xfa\x18\xc6\xe5\x27\x57\x9d\x87\xeb\x8b\x9f\x86\xb7\x57\x9d\x8a\xd8\x48\xbb\xad\x5a\xbb\xcf\xfc\x91\x6d\x7e\x98\x8e\xae\x4c\xf3\xcb\x1b\x1d\x5a\x59\x1c\x5a\x9b\x1b\xda\xda\x1a\xda\x19\x1a\xea\xad\x0c\x7b\x08\x5d\x6a\x6f\x0a\xb8\xa2\xb2\x68\x0b\x38\x8e\x84\xf6\xc2\x90\xf5\x1c\xf6\x6d\x08\xf8\xe6\xac\x00\xdf\xa8\x09\x20\xe8\xff\x7b\xa1\xdb\x5b\x55\xfe\x0f\x5c\xf3\xdf\x26\x0e\x33\xcb\xd1\x0a\x81\x98\xcb\x81\x98\x24\xc4\x61\x86\x38\xcc\xb6\x04\x0a\x71\x98\x21\x0e\xf3\x18\xe2\x30\x5b\x29\x5a\xc1\x63\x7b\x08\x1e\xdb\x03\xd7\xd1\x0e\xd9\x61\xfb\x56\x35\x97\xe0\xbc\x0c\xce\xcb\xe0\xbc\x3c\xd2\x93\x1b\x9c\x97\xed\x69\x14\x9c\x97\xc1\x79\x19\x9c\x97\xc1\x79\x19\x9c\x97\xc1\x79\xf9\x9a\xa6\x91\x43\x88\x0d\x3d\x66\x97\x6d\xf0\xc4\xae\xf0\xc4\x1e\xb8\x92\x7f\x90\x8e\xd8\xb7\xaa\x23\x04\xd5\x3e\xf8\x25\xb7\x9a\xf6\x41\x29\xf5\x6f\xed\xde\x0c\xae\xd8\xf6\x84\x08\xae\xd8\xd6\xa4\x0a\xae\xd8\x06\xe2\x04\x57\x6c\x70\xc5\x7e\x83\xae\x58\x1a\x6f\x0d\x0b\xdf\x46\x6f\xd1\xb2\x62\xdc\x05\xf3\x50\x66\xdc\x12\xbf\x81\xf4\x88\xe5\x63\x66\x01\x6a\xa1\xcf\xf4\xe2\xa3\x50\x64\x2a\x27\xfc\x12\x0a\xcd\x36\x1a\x0b\x56\x9a\x83\x2b\x80\x2a\xd0\x4f\x72\xa3\xe2\x01\xe2\x58\x6e\xa3\xa3\x78\x13\xf3\xd4\x14\xa7\x7d\xf8\xc5\x93\x0f\x6e\xda\x41\xf0\x0b\x82\x5f\x90\x6d\x5a\x4e\x38\xc8\x36\x87\x2b\xdb\xbc\x96\xc2\x72\x78\xc7\xf3\xe8\xec\x13\x7b\x17\x4b\x0b\xf8\xcb\x8d\x30\x8e\xa6\x94\x1b\xb8\xee\xd2\x79\xc2\x71\xbc\x2a\x40\xee\x37\x94\xcb\x6a\x0d\xe2\xa6\x69\x57\x7f\x70\xe0\xd2\xe6\x52\x6c\x9c\x19\xf9\xb7\x80\xdc\x58\x3b\xf5\x57\x05\x6f\x84\xfd\x9b\xa1\x16\x65\xb0\x44\x85\xe8\xd1\x7d\xa9\x59\xe5\x0d\xde\x4a\xa3\x92\x7f\x3d\xf0\x2d\x9e\xad\xef\x4b\xe8\x4f\x6f\x32\xfb\xee\x0d\x7b\xb2\x82\xb7\xaa\x39\xa4\x60\x47\xd1\x6d\x03\xd6\xd7\x8a\x14\x9f\x8d\x28\xcb\x82\x79\xdc\x0e\xf9\xa3\x23\xd7\x1f\x01\x48\xcf\x82\xeb\x25\x8b\x5c\xcf\x96\xe5\xd6\x32\x29\x0c\x9d\x6a\x11\x38\x22\x42\x01\xbd\x39\x53\xe4\xab\x92\xe8\x14\x25\xf4\x91\xa0\xf7\xfa\xc8\xa3\xce\x6d\xef\xfd\x09\x7a\x7f\x85\x53\x16\x4d\xd1\x3c\xc1\x4c\xbe\x3f\x18\xe9\x2d\x28\xe4\xa1\x3a\x41\x70\xc5\xec\x43\x7b\x0f\xe6\x8a\x95\xd3\x0e\xe6\x8a\x37\xe3\x8a\x69\xa9\x33\x98\x8c\x35\x3c\x23\x87\xa2\x3d\x1c\x0d\xc0\x47\xd0\x1e\x82\xf6\x50\x31\xb5\xa0\x3d\x7c\x83\xda\xc3\x61\x50\x38\xa8\x0e\x41\x75\x08\xaa\x43\x50\x1d\x82\xea\xb0\x73\x32\x06\xd5\xa1\x49\x75\x80\xbf\x1c\x28\xc5\xba\x7a\x44\x6b\xfd\xa1\x05\x02\xc5\xd1\x28\x0f\x41\x71\x08\x8a\x43\x50\x1c\x5e\x5c\x71\x38\x98\x09\xbd\xbd\x64\xfa\x90\x8e\x1e\xd2\xd1\x43\x3a\x7a\x4d\x3a\xfa\x4b\x89\x6c\x46\x5e\x3b\xb2\xf8\xfb\xa3\x10\xda\x5e\x2d\x00\xff\xed\x89\x71\x21\xa5\x20\xa4\x14\x04\x33\x64\x48\x29\x08\x86\xb6\x60\x68\x3b\x68\x43\xdb\x6b\x59\xcf\x5f\xf8\x78\xbe\x80\x70\x7a\xe0\x11\xcb\x7f\x39\x06\x09\xf4\x05\x63\x0e\x82\x95\x2d\x58\xd9\xaa\x29\x73\x9c\xee\xf9\x83\xb9\xf5\x03\x7a\x4c\x90\xf8\x43\xe0\x41\x08\x3c\x58\x49\x9c\xa0\x0f\x05\x7d\xe8\xe0\xf4\xa1\x57\x54\x14\x0e\x2e\x4c\x39\x68\x0c\x41\x63\x08\x1a\xc3\x9b\xd5\x18\x0e\x86\xc2\x41\x5d\x08\xea\x42\x50\x17\x82\xba\xd0\x4c\x9c\xa0\x2e\x04\x75\x21\xa8\x0b\x07\x1d\x9a\x7c\x2c\x0a\x43\x50\x16\x82\xb2\x70\xd8\xca\xc2\xc1\x4c\x28\x04\xf1\x86\x20\xde\x10\xc4\xfb\xcd\x04\xf1\xbe\x51\x85\x7d\xaf\x62\x9a\x63\x91\x4d\x82\xd7\xb2\xbc\xf4\xcb\x12\x63\x3d\x58\x91\x29\x1f\xed\xa6\x10\x89\xbb\x22\xf5\x33\x17\x8f\xe3\x84\x3f\x0f\x33\xad\xce\x06\x85\xe7\xff\xb6\xf9\x7c\xde\x0f\xb9\xf0\xec\xfd\x98\x09\xd1\xde\x6f\xae\xf5\x82\x0c\x3d\x4f\x57\x21\x69\x4a\xc4\x05\x4a\xe7\x31\xfc\x19\xa5\x52\xf1\x59\xbd\x54\xfd\x19\xab\x68\x8a\x47\x09\xe9\x64\xfd\x5e\x70\x36\xa6\x93\xd4\xec\x8f\xdf\x80\x15\x62\x27\xd9\x9c\x38\xc9\x48\x33\x45\x37\xbe\x26\x49\xfc\x01\xc6\xf1\xc5\xbe\x99\x77\x72\x14\x01\xe8\xcb\xc3\x36\xd3\x79\x29\x64\xce\xe2\x2e\xda\x96\xc5\x79\xad\x1d\x86\xf8\xb3\x7c\x26\x56\x89\xaa\x60\x85\xce\x34\x13\x1a\xc3\xe6\x7c\x9e\x52\xb0\xac\x81\x25\x0e\xac\x4f\x79\xc3\xe8\x99\x26\x09\x48\x1c\x86\x16\x87\x37\xf3\x56\xda\x8b\x9d\xb8\x3d\x7b\x6f\x62\xde\x8e\x79\xac\x98\xb9\x3b\x82\xc6\x0d\x71\xa4\xd3\x7e\x4d\x84\xdd\x15\x8c\xec\x55\x71\x76\x6b\xaf\xcf\x9a\x9c\xaa\x0f\xff\x53\x79\x25\xb6\x29\xcc\xf8\xda\xf7\xe0\x27\xa2\xde\xcc\x25\xf8\x89\xa8\x97\xba\x01\xdf\xe2\xb5\xb7\xe9\x5d\xd7\xc8\xf8\x04\x19\x13\x41\x58\x44\x8e\x35\x27\x6b\xe9\x8a\x3b\xda\xe9\x6e\x74\xb3\x1d\xed\x6c\xd7\x31\x60\x7d\x31\x93\xb4\xe6\xaa\x99\x63\xb9\xfe\x54\x15\xb7\xee\xe5\x82\x0b\xcc\x1a\xab\xfa\x9d\xfb\x9f\x87\x77\xdd\xfb\x9b\x87\xbb\x8b\xee\x39\xea\xc0\x41\x87\x6f\x0c\x7b\xa7\xff\x84\xe6\x20\x1f\x36\x33\x86\x09\x73\xc7\x49\x60\xd5\xe0\x06\xd7\x54\x44\xa7\xe8\xe2\xea\xe1\xbe\xdf\xbd\xab\x69\xd0\x32\x7f\xca\x26\x48\x91\xd9\x3c\xc1\x8a\xc4\xe8\x31\x1d\x11\xc1\x08\x28\x56\x49\x2a\x15\x11\xb9\x73\xdc\x34\xda\xfd\xaf\xee\xc5\x43\xbf\x77\x73\x3d\xfc\xfb\x43\xf7\xa1\x7b\x8e\xdc\x2d\xa2\x9b\xd5\xe3\xd2\xa3\x88\x17\x0c\xcf\x68\x64\x7e\xc8\xea\x5c\xa2\xdf\x53\x92\x12\x84\xa5\xa4\x13\x36\x23\x4c\x95\x5b\x74\x03\xbe\xea\xfc\xd8\xbd\x2a\xb6\x3c\x25\xe8\xe7\xbf\xe5\x83\x4a\xf0\x88\x24\xd6\x5b\x0f\x0e\x68\x7d\x79\xe5\x1d\x59\x37\x7e\x6a\xa8\xfa\xf7\x87\xce\x55\xaf\xff\xeb\xf0\xe6\xe3\xf0\xbe\x7b\xf7\x4b\xef\xa2\x3b\xb4\xc6\x98\x8b\x8e\xee\xb7\xd0\x93\xb5\xd9\xa0\xdf\x53\x9c\x50\xb5\xd0\xeb\x28\xcd\xa5\x8f\x9e\xa7\x84\xa1\x94\xc1\x05\x62\x2c\x85\x98\x79\x9d\xca\x39\x89\xcc\x8c\x6e\xaf\x1e\x3e\xf5\xae\x87\x37\xbf\x74\xef\xee\x7a\x97\xdd\x73\x74\x4f\x12\xb0\xa5\x39\xa2\xc3\x2a\xce\x93\x74\xa2\x39\xc1\x6c\x9e\x10\x4d\x0d\x63\x2b\x1c\x91\x29\x7e\xa2\x5c\xd8\xeb\x78\x42\x9f\x08\x33\x74\xd4\xdb\xca\xb4\xef\x6c\x56\x43\x8f\x74\x37\xd7\x1f\x7b\x9f\xce\x51\x27\x8e\xb3\x39\x48\x68\xa3\xb0\x73\xdc\xd1\x3d\x2d\x0e\x9b\x8e\x69\x04\xdd\x9b\x4d\xc4\x9f\x88\x10\x34\x26\xa5\x7d\xd4\xb9\xbf\xef\x7d\xba\xfe\xdc\xbd\xee\x03\xc5\x94\xe0\x89\x44\x53\xfe\x0c\x8e\x5e\x98\x21\xf8\x7f\x9f\x30\x4d\xa0\x33\xb7\x58\x9c\xf9\xa7\xdf\xeb\xd9\x98\x35\x45\xca\x5e\xdd\x77\x59\x38\x78\xcb\xd6\xbe\xf2\x49\x5a\x7e\xa3\x74\x2c\x9a\x5e\x28\xec\xf2\xe5\x17\x57\xed\xd6\xe5\x2f\x4a\xdb\xad\xde\xc6\xb9\xb4\x5f\xea\x67\x9a\xaf\x75\x6b\x13\x67\x91\x86\xfb\x90\xb1\xdd\xd7\xef\x62\x92\x10\x45\x6a\x65\xe2\x4b\x78\xfc\xfa\x32\xb1\x19\xc7\x9b\x11\x8b\xcd\x74\x82\x64\x1c\x24\xe3\xd6\x13\x0e\x92\x71\xd5\x84\xdf\x88\x64\x7c\x80\x56\x1f\xc7\xa2\x0e\xce\xea\x13\xfc\x23\xa5\x95\x3a\xce\x2b\xf0\xd5\xdc\x23\xc1\x7f\xb0\xde\x15\x72\xfc\xf3\x0e\xfe\x83\xe0\x3f\xa8\xbc\x49\xde\xbc\xd7\xe0\x38\xaf\x86\x17\x74\x1a\x04\x35\xa2\x61\xbe\x41\x8d\x38\xb2\xd9\x06\x03\x7b\x30\xb0\x07\x03\x7b\x30\xb0\x07\x03\x3b\xda\xd4\xc0\xde\x82\xcb\xbe\x84\x39\xf5\x40\x83\x88\xdf\x8a\xdb\xe0\x38\xe5\xe2\x97\xf5\x1a\x04\xd1\xb8\x61\xbe\x41\x34\x3e\xb2\xd9\x1e\xa0\x5d\xe4\xb0\x2c\xec\x34\xae\x32\x88\xbc\x20\x34\xbd\x1b\x49\x5b\x78\x7a\x47\xd0\x5e\x7c\x14\xec\xfc\xd5\x10\xea\x03\x9e\x7b\xc0\x73\x0f\x70\x2d\x01\xcf\x1d\x05\x40\x92\x00\x48\x72\xc8\x80\x24\x2d\x96\xf1\x2d\xe0\xb9\xbf\x8c\x85\xe1\x0d\x25\x29\x3b\xc1\x50\x16\x62\x37\xb8\x5c\x15\xbc\x01\x56\x82\x74\x9e\x70\x1c\x37\x81\xc5\x38\x39\xd2\x07\x8c\x69\x10\x3d\x4d\xdb\x5f\x96\x95\xa7\x83\x95\x3c\xdd\x58\xcd\xc8\x5f\xca\x7c\x70\x30\x0a\x97\x9b\xf6\x41\xa8\x59\x2d\x6b\xb7\xee\x5c\xed\xaa\xda\xe4\xad\x35\x2c\xf9\xd7\x63\xda\xe6\x2f\x04\xa9\xfa\xf6\x0a\x7f\x05\xe8\xa7\x00\xfd\x54\x4b\x99\xe3\xc4\x89\x3d\x18\x89\x2e\x28\xe9\x01\x53\x35\x60\xaa\xee\x43\xa3\x0f\x26\x8c\x95\xd3\x0e\x26\x8c\x37\x81\xa9\xba\xa6\x0e\xb1\xc7\x9a\x0c\xdb\x69\x13\x47\x95\xb3\x17\xb4\x89\xa0\x4d\x54\x4c\x2d\x68\x13\xdf\xa0\x36\x71\x18\x14\x0e\xaa\x44\x50\x25\x82\x2a\x11\x54\x89\xa0\x4a\xec\x9c\x8c\x41\x95\x78\x9d\x7a\x0d\x55\xfa\x44\xcb\x5c\xb7\xa3\x52\x26\x82\x22\x11\x14\x89\xa0\x48\x84\x8a\x14\xcd\x73\x0a\x15\x29\x42\x45\x8a\x50\x91\xe2\x0d\x54\xa4\x78\x49\x11\xae\x06\x06\xf9\x38\xe2\xf7\x8f\x42\x88\x7b\xb5\x00\xfe\xb7\x27\xd2\x85\x94\x84\x90\x92\x10\x4c\x94\x21\x25\x21\x18\xe1\x82\x11\xee\xa0\x8d\x70\xaf\x65\x59\x7f\xe1\xe3\xf9\x42\x82\xea\x91\x44\x3b\xff\xe5\x18\xa4\xd1\x17\x8e\x4f\x08\x16\xb8\x60\x81\xab\xa6\xcc\x71\xba\xf2\x0f\x46\x0a\x38\xc6\x92\x94\x41\x03\x68\x4f\x88\x10\xa4\xd0\x9e\x56\x21\x48\xa1\x81\x38\x41\x3f\x0a\xfa\xd1\xc1\xe9\x47\xaf\xac\x38\x1c\x6c\x88\x73\xd0\x20\xcc\x7b\x41\x83\x08\x1a\xc4\x1b\xd5\x20\x0e\x86\xc2\x41\x7d\x08\xea\x43\x50\x1f\x82\xfa\xd0\x4c\x9c\xa0\x3e\x04\xf5\x21\xa8\x0f\x47\x13\xd6\x7c\x4c\x0a\x44\x50\x1e\x82\xf2\x70\xd8\xca\xc3\xc1\x4c\x28\x04\x00\x87\x00\xe0\x10\x00\xfc\xcd\x04\x00\xbf\x51\x05\x7e\xb7\x62\xdb\xbf\x59\x42\xbd\xf3\x04\x8c\x4c\x12\x79\xf7\x63\xc2\x47\xfd\xc5\x9c\xe8\xff\xbf\xa4\x33\xc2\x24\x50\x82\xaa\x85\x2f\xa6\xd5\x6c\xa8\xe5\xad\xf4\xee\xbe\x77\xfd\xe9\xca\xaf\x3b\xf2\xee\xf3\xc3\x55\xbf\x77\xdb\xb9\xcb\x96\x3b\x9b\x95\xbf\xc4\xf6\xbb\x82\xa4\x69\x4f\xf2\x1d\xd1\x2a\x35\x30\x83\x7b\x85\x55\x2a\x37\x1b\xd9\x5d\xf7\xbe\x7b\xf7\x0b\xd4\x4d\x19\x5e\xf6\xee\x3b\x3f\x5e\x15\xf6\x79\xe1\x79\xe7\xe2\xef\x0f\xbd\xbb\xfa\xe7\xdd\xff\xea\xdd\xf7\xef\xeb\x9e\xde\x75\xaf\xba\x9d\xfb\xfa\xaf\x3f\x76\x7a\x57\x0f\x77\xdd\x46\x7a\x34\x8e\xb6\x59\xb7\x92\x40\x24\xa8\x1d\x80\x22\xcb\x0c\x45\x4e\x43\x94\x49\xc5\x8e\xcb\x57\xf5\x75\x8e\x1e\xac\xa9\x82\xda\xc6\xcd\xbd\xe1\x35\x64\x74\xac\x98\x4a\x3c\x4a\x48\xbc\xd4\x92\xa3\x61\x5d\x4b\xb8\x30\xa8\x67\x2c\x3d\x49\x5a\xb3\xf2\xc8\x1c\x1f\x04\xd5\x9c\x14\x61\x71\x45\x1f\x66\x1d\x6a\x7b\x60\x9a\x25\xd3\x27\x52\xe8\x29\x4a\x85\x20\x4c\x25\x0b\x44\xbe\x52\xa9\xe4\x52\xa3\x6e\xf9\xea\x9a\xb5\x0c\x21\x6b\x70\x8a\x25\x1a\x11\xc2\x8a\xe3\x17\x24\x21\x58\x56\x8c\xd9\xae\x7e\x3b\xb2\x64\x6b\x65\x8d\x4c\xe6\x8e\x1d\x63\x9a\xa4\x82\x94\x4e\x0b\x9f\xcd\xb1\xa0\x92\xb3\xee\x57\x7d\x45\xeb\x83\x7c\x03\x9f\x73\xb1\xd9\x89\xe9\xfe\xdd\xdf\xc1\xd7\xc5\x7f\x7e\xea\x17\xff\x55\x38\xf3\x57\xfd\xe2\xbf\x9a\xf7\xba\xd7\x70\x79\x67\x9f\xa2\x4f\xfd\x73\xf4\x09\x20\x46\x05\xea\x4f\xb1\xd9\xb1\x57\xfd\x73\x74\x45\xa4\x84\x5f\xf2\x8f\x15\x55\x09\xcc\xed\x47\xca\xb0\x58\x20\x37\x7d\x53\x12\x0c\x47\x53\x44\x32\xd2\x94\x89\xc7\xfe\x91\x32\xb0\x48\xe4\xd4\xbb\xe2\x13\x1a\xe1\x64\x3b\x22\x76\xae\x0b\x7c\xe0\xe6\xae\x91\x14\xfe\xdb\xcb\xb4\xe8\x5c\x5f\x42\xb9\x2d\x37\xd4\x8a\x99\x5f\x13\xa9\x37\x49\xc4\x59\x6c\x7d\x6a\x5a\xa8\x59\x78\xba\xca\x3f\x38\x94\x2c\x4b\x25\x65\x13\xdd\x22\xfa\x80\x6e\xee\x06\xec\x46\xc4\xc6\xbe\x4b\xb4\x90\x6f\xf6\x1c\x95\x88\x71\x85\xe8\x6c\xce\x85\xc2\x4c\x69\xfd\x06\xa4\x1b\x4b\x11\xc3\x01\x2e\xf8\x6c\x96\x2a\xac\x0f\xda\x12\x51\x99\xb1\xf2\xdc\x13\xd5\x8b\xc1\x11\x56\x41\x43\x23\xfe\xe4\x73\x99\x0b\xdd\xbe\x16\xbd\x8a\xa6\x01\x1a\x2f\x69\xe8\xae\x09\x2c\x04\x2e\x5e\xc0\xef\xa8\x22\xb3\xf2\xfb\x2d\xaf\xdd\x7f\x55\xda\x3d\x2e\x4c\x56\x04\x11\x1d\x11\x4d\xa9\x22\x91\xd2\x47\x70\xa3\x3d\xf1\x70\xfd\xf3\xf5\xcd\x17\x5f\x30\x7a\xd7\xf9\x7c\xf9\x1f\x05\x18\xd8\xce\xdd\xe7\xa5\x1f\x86\xbf\xfc\xc7\xd2\x2f\xff\xff\xc6\xfd\x54\xee\x69\xc9\x7c\xe1\xcd\xe5\x14\x34\x05\x30\x75\xbb\xa9\x22\x3a\xc3\x13\x82\x64\x3a\xd7\x3b\x40\x9e\x15\xd7\x57\x4b\xca\x57\x1c\xc7\x94\x4d\x4c\x55\xa9\x2b\xaa\x88\xc0\xc9\x67\x3c\xff\xe8\xcc\xf2\x1b\x50\xe7\xff\xdc\x17\x2a\x9b\xbd\xfb\xb5\xf3\xd9\xaf\x8d\xf6\xee\xf6\xee\xa6\x7f\xd3\x38\xeb\x42\x0b\xcb\xc7\x48\x3f\x3e\x87\xff\x45\x1f\x90\x6e\x3d\x13\xe8\x67\x44\x61\xad\xe8\xa0\xef\x4c\x21\x9e\x2c\x13\x86\xb2\x04\x4e\xcd\x5c\xd0\x19\x85\x2b\xc5\x18\x26\xbf\x37\x3a\x43\xa6\x14\x65\xe7\xc6\x7c\x00\x46\x00\x77\x29\xb3\x18\x8b\x18\xfd\x43\x96\x0b\xed\x81\x3d\xdc\xfc\x40\x62\x74\x8a\xa6\x4a\xcd\xe5\xf9\x87\x0f\xcf\xcf\xcf\x67\xfa\x6d\x2d\xc0\x7e\xd0\x7f\x9c\x12\x76\x36\x55\xb3\xc4\x14\x16\xd4\x54\x38\x47\xb7\x82\xeb\x2b\x04\xec\x0e\x44\x50\x9c\xd0\x7f\x92\x18\x8d\x0c\xff\xe3\x63\xf4\x5b\xc4\x05\x39\xcb\x17\xc6\xda\xca\xec\x3d\x62\xed\x69\x1f\xf4\x4b\x15\xcc\xa4\xbc\x9e\x28\x26\x11\x8d\xad\x98\x41\x58\xc4\xc1\xa0\x6a\x5c\x30\xba\x3d\x57\xbd\x48\x2b\x6a\xf3\x54\xe5\xe4\xf4\x74\x30\x1c\x13\xaf\x2e\xa0\x95\xaf\xb3\x0d\xa7\xf5\xb9\x9e\xd1\xc6\x53\x49\x04\xdc\xad\x18\x6e\x55\xf7\xea\x5c\x4f\x38\xe2\x09\x1a\xa5\xe3\x31\x11\x7e\xf8\xc0\x89\x56\xd2\xa8\x44\x82\x44\x7c\x36\x03\x89\x41\x7f\x95\x4a\xb3\xab\x81\x62\x76\xb4\x67\x03\x06\xeb\xaf\xb5\x37\xd8\x01\x31\x07\x56\xc7\x08\x89\x11\x66\x0b\xd3\xcd\x28\x1d\xfb\xed\x9b\x82\x9d\x38\x46\x54\x0d\x58\x27\x49\x90\x20\x33\xae\x88\x57\x97\x09\x5c\x9d\x45\x82\x03\x8b\x14\x64\x9e\xe0\x88\xc4\x66\x3f\x24\x3c\xc2\x09\x1a\xd3\x84\xc8\x85\x54\x64\xe6\x37\xf0\x1d\x98\xa0\x34\xcd\xa8\x44\x31\x7f\x66\x09\xc7\x76\x1e\xe5\xcf\xbe\x2f\x9e\xc6\xae\x2b\xa6\xd8\x15\x82\x0b\xf8\x9f\x9f\x29\x8b\x77\xc6\xa1\x1e\xee\xbb\x77\xfe\xbf\xef\x7f\xbd\xef\x77\x3f\xaf\xc7\x7d\xb2\x9d\x05\xc3\x03\xd3\xc4\x39\xba\x37\x44\xe0\x42\x4b\x44\xa2\x66\x52\x9f\xed\x56\xca\x7f\xe0\xf1\x86\xdc\xf7\x73\xe7\xfa\xa1\x53\xe0\x28\xf7\x17\x3f\x75\x2f\x1f\x4a\xfa\x80\x9d\x5f\x41\x86\x37\x5a\xad\xff\xdb\xc5\x4f\xbd\xab\xcb\x61\x85\x1e\xfc\xee\xae\x7b\x71\xf3\x4b\xf7\x2e\x57\x59\x2b\x49\x54\x1a\x4c\x99\x59\xf5\x0d\x53\x9a\xf2\x18\x8d\x16\xd5\xa5\x33\xb5\xe4\x9c\x80\xe7\x3c\x2f\x1e\x6b\x5a\x3d\x07\xde\xe4\xaa\x98\xe6\x5f\xcc\x78\x4c\x4e\xec\x3b\x50\x73\xd4\xd8\x8c\x8c\xc4\x5c\xdd\xb0\xee\x1d\x33\xcf\xfe\x62\xca\x81\x66\x84\x3b\x47\x1d\x24\xf5\x8b\xa9\x3e\xd4\x82\x4e\x26\x60\x0f\x2d\x0d\xd5\xb4\x66\x3f\x05\xf2\xc2\x77\x66\xfd\xe7\x82\xc3\x39\xd7\xdd\x5a\x43\x7a\x66\x6c\x31\x1f\x42\x7d\xda\x62\x8b\x02\x83\x1d\xa5\x62\x68\x6e\xb1\x34\x11\x6a\xe9\x65\xce\xa3\x31\x83\xe9\xc3\x05\x6c\x4b\x1a\x33\xee\x5c\x90\x27\xca\x53\xef\x53\x5b\x02\xb5\xb0\xe2\x95\xcd\xe7\x04\x00\xb2\x19\x5b\x4f\xa9\x99\x6c\x7b\x54\xb6\xa0\x59\xd8\x13\xb4\x30\x16\x7c\x56\xd1\x46\xf1\x98\xf4\x6e\xee\x95\xc0\x8a\x4c\x16\x97\x96\x65\x6c\x7e\x3c\x2e\x6f\xbe\x5c\x5f\xdd\x74\x2e\x87\xdd\xce\xa7\xe2\x89\xcf\x9e\xdc\xf7\xef\xba\x9d\xcf\xc5\x47\xc3\xeb\x9b\xfe\xd0\xbd\xd1\xb8\xe5\x6b\x3a\x58\xbe\xa7\x8b\x2f\x9e\x23\xcd\x72\x81\x35\x3e\xd3\x24\xd1\x97\x89\xc7\x1f\x47\x64\xcc\x85\xe1\xf3\x33\x17\x68\x62\x45\x18\x47\x5b\xab\x8b\x95\x66\x71\x0e\x06\xbf\xaa\x26\x8d\x31\x5f\x09\x82\x67\x70\x4f\x60\x86\xba\x2c\x3e\xbd\x19\x9f\xde\x9b\x1f\x67\x58\x3c\x12\x91\x7d\xfa\x2c\xa8\x52\x84\x15\x54\x3a\xec\x86\x9c\x29\x89\x79\x07\x67\xe8\x4e\xf3\x7d\xfd\x7e\x76\xa9\xe9\xcd\x1e\x13\x85\x69\x22\xed\x60\x0b\x74\x3d\x47\x57\x58\x4c\x72\xf3\xe2\x77\x7c\x3c\x36\x8d\x7d\x6f\x86\xa1\xef\xb0\xc2\x2c\x2a\x78\xaf\xde\x1a\xee\x5e\x84\xfe\xec\xcb\x99\x3c\xbc\xbc\xab\x1e\xe6\xdb\xed\xa9\x87\x5b\xa0\xb8\xd1\xd8\x0b\xba\xa1\x7d\x52\xb1\xd7\x60\xe2\xe6\x71\xf3\x25\x53\xdd\xf6\xf2\x76\x2a\xbe\x58\xb1\x9d\x4c\x2d\x13\xbd\xf2\x63\xad\x6d\x56\xec\x25\xf2\x95\x5a\x83\x81\x3f\xee\xd2\x16\xca\x9b\x01\xab\x31\x9e\xcf\x09\x16\xb2\x6a\xb5\x8b\x62\x60\xcd\xda\x9b\x9e\xfc\x3e\xec\x22\xbb\x7e\x4e\x10\x67\x60\x70\xc8\x84\x88\xd2\x8e\x6c\xb1\x07\x4c\x5b\x4b\x3b\xe0\x16\xea\x52\xdf\xd8\x1a\xd0\x9f\xa9\xd4\x4a\xa3\xf9\xf1\x47\x5b\x9c\x7a\xb3\x0d\xf1\xb1\xd3\xbb\x2a\x09\x17\xc3\xcb\xee\xc7\xce\xc3\x55\xb3\x99\xb0\xf0\x5d\x79\x89\xd1\x29\xd2\xcf\x8b\xe1\x00\x74\x6c\xee\x0c\x57\x62\xdb\xa8\xb4\x84\x81\xd1\xca\x96\xbf\x35\x66\xf8\x98\xcc\x13\xbe\x98\x11\x06\x26\x9e\xc2\x4d\xa8\xe9\x39\xc6\xd4\x5e\x2d\xde\x60\xc1\x8a\x63\xcd\x6e\x70\x8d\x9d\xba\xba\xde\x24\xce\x6e\xde\x62\x59\xef\x12\xeb\xbe\x35\x4e\x41\xfb\x7f\xf7\x0a\xab\x0d\xcf\x58\xe7\xa2\xdf\xfb\xa5\x5b\xd4\x0f\x2f\x7e\xea\xfd\x52\x25\xd5\x0c\x3f\x75\xaf\xbb\x77\x9d\xfe\x0a\xe1\xa4\xd4\x64\x95\x70\x22\xf5\x80\xcb\x4e\x61\x2a\xb3\x40\xa7\xc8\x14\x07\x47\x54\x49\xf4\x44\x25\x1d\x51\x28\xa5\x6e\x1d\xac\x0f\x3d\xe0\xac\x4f\x38\xa1\x31\x55\x0b\x27\xbe\x98\x7e\x8b\xeb\xa8\x39\xa9\x6d\xdf\x98\x1d\x7c\xb7\x2b\x58\xf9\xcc\xe2\xb8\x49\x9f\x23\xd0\x6d\x9f\x40\x69\xf3\x3e\x63\x5a\x90\x66\x13\x22\xcc\x70\xc0\xa9\xe4\x8f\xc5\x7b\xae\x47\xe5\x0b\x2b\x39\xd5\x32\xa1\x75\x42\x18\x11\x50\x2e\x3f\xeb\xc4\x08\x52\x82\xb0\xf7\x5a\xe6\x9a\x27\x34\xa2\x2a\x59\xa0\x08\x6c\x58\x60\xce\x9c\x61\x86\x27\x56\x38\x00\x35\xa7\xb4\x25\xfe\x6e\xea\xcd\xdf\x8c\xad\x69\xbf\x4f\xc9\x86\xc7\xec\xe1\xfa\xb2\xfb\xb1\x77\x5d\xdc\x02\x3f\xf5\x3e\x15\x44\xd8\xcf\xdd\xcb\xde\x43\xe1\x36\xd7\x92\x6c\xb3\x5c\x5f\x6e\xb6\xe2\x28\x66\x2f\x9d\xa3\x4b\xf3\xe9\xb9\x26\x6e\x45\x31\xfd\x4c\xf9\x2d\xd1\xe1\xce\x45\x1a\xba\x3f\xba\x4c\x89\x4a\xbf\x44\x5b\x13\x92\xf5\x0a\x15\x6c\x48\xd5\x11\x18\x4b\x7d\x5f\x97\x7d\xe5\xe5\x29\xbb\x17\x21\x44\xf6\x2c\xb7\x2c\xf9\xa1\x19\x60\x34\xa8\x33\x62\x55\x78\xeb\x72\x86\xfd\x0b\x78\xde\x67\xa9\x54\xc6\x43\x0a\x9b\x13\x3d\xfe\x4d\x6a\x82\x82\x07\xf5\x0c\xdd\x13\x32\x60\xce\x7a\x30\xa1\x6a\x9a\x8e\xce\x22\x3e\xfb\xf0\x98\x8e\x88\x60\x44\x11\xf9\x01\xcf\xe9\x0c\x6b\x49\x9a\x88\xc5\x87\x51\xc2\x47\x1f\x66\x58\x2a\x22\x3e\xcc\x1f\x27\x10\xd8\xe3\x3c\x5d\x1f\xb2\x66\x27\xfc\xdf\xaf\xfe\xf2\xc3\xe9\xd5\xdf\x7e\x78\xb7\x6c\x21\xab\x5b\xff\x2e\x8b\xf0\x5c\xa6\x89\x0d\x04\x14\x3e\x6d\xdc\x91\x4f\xc9\xaa\xf5\xbe\x2e\x2e\xd7\x76\xfa\xeb\xc5\xed\x43\xc1\x62\x5d\xfc\xe7\xe7\xee\xe7\x9b\xbb\x5f\x0b\x9c\xb2\x7f\x73\xd7\xf9\x54\x60\xa8\xdd\xdb\x9f\xba\x9f\xbb\x77\x9d\xab\xa1\x7b\xb8\x8d\xed\xed\x67\xc6\x9f\x59\x91\x34\xd2\x71\xc0\xa5\x9e\xce\xd1\x47\x2e\xd0\xcf\xd9\x4a\x9e\x8e\xb0\x84\x2b\xc6\xdd\x59\xf2\x04\xcd\x79\x0c\x8c\x17\x91\xf9\x94\xcc\x88\xc0\x89\xb5\x19\x48\xc5\x05\x9e\x98\x9b\x5e\x46\x02\xab\x68\x8a\xe4\x1c\x47\xe4\x04\x45\xb0\x1b\x26\x27\xb0\x28\xa0\x6a\xf1\x49\xd9\xce\x77\x97\x32\x45\x67\xc4\xa9\xe0\xf6\x9f\x7d\xb3\x18\x1b\x2c\xce\x4d\xff\xa7\xa2\xb0\xf7\xf1\xea\xd7\x7e\x77\x78\x7f\xf9\x73\x23\x3d\xcd\x67\x85\x91\xdd\x43\x5c\xd5\x05\x4f\xd2\x19\xf3\xff\xde\x7c\x6c\xbd\xeb\x7e\xf7\x53\x79\x74\x37\x9d\x7e\x71\x67\xdc\x15\xe3\xf6\xde\xfd\x78\x73\x73\xd5\x2d\x78\xba\xdf\x5d\x76\xfa\xdd\x7e\xef\x73\x61\xff\x5c\x3e\xdc\x81\x0f\xa8\x71\x9a\x6e\x04\x15\x13\xd5\xd3\xf2\xa7\xb9\x6b\x56\xd8\x8a\x13\x75\x6c\xf8\xbf\x39\xcb\xa7\x1e\x5e\x8e\x89\x72\x03\xab\xce\x69\x66\x52\x8d\xcc\x48\x2b\xd9\xa1\x2a\x2e\x13\xaa\x67\xc7\x8d\x0b\xdd\xc4\x95\xfb\xd9\x10\x60\x5c\x67\x46\xd9\xc6\x49\xc2\x9f\x4d\x84\xf2\x8c\xea\x5b\xd9\x16\x5b\xd7\xaf\xc8\xdc\x43\x78\x56\xc1\xf1\x8a\xcb\x42\x22\x41\xd4\x67\x9e\x32\xb5\xf9\x96\xeb\x5c\x17\xf8\x4e\xf7\xfa\x97\xe1\x2f\x9d\xe2\x0e\xec\x5d\x35\xb3\x1a\xbf\x89\x8a\xab\xb8\x73\xfd\x6b\x76\x09\x43\x1c\xfb\x49\xa6\xa1\x1a\xd9\x35\x4a\xa8\x16\x7b\x23\xac\xb5\xd7\x04\x24\x1a\x44\x28\x98\x1c\x66\x7a\x72\x10\x37\x3b\x37\xfe\x24\xc3\x9f\xcc\x20\xcf\xdd\x1f\xa5\xf6\x24\xd0\x05\xac\xa9\x2e\x4d\x00\xda\xb1\x5a\x35\x43\x84\x3d\x51\xc1\x19\x08\xdb\x4f\x58\x50\x2d\x8d\x9b\x96\xf5\x5c\xcf\xe1\x7f\xd7\x6b\x13\x0c\xa3\x25\xc6\x75\xcf\x85\xba\xcc\xe2\x93\x37\xb3\x86\x54\xc5\xe9\x2e\x47\xe8\x56\x1b\x3a\x96\xbf\xad\x58\x9c\x2d\xe3\x98\x8b\x13\xfe\x3d\xb9\xa4\x38\xd1\x0c\x60\x77\xf2\x62\xe7\xfa\xbe\x57\x94\x1f\x8b\x6a\x86\xc7\x97\x37\x96\x17\xc1\x50\x69\x46\xee\x94\x89\xfb\xbf\x5f\x19\xed\x42\x6f\x12\x7b\x6e\x3d\xc5\x02\x04\x20\x57\x85\x74\x8e\x85\x2c\x7d\x21\x11\x20\x99\xe5\x71\x64\xfa\xce\x82\x28\xad\x27\x4e\xe3\x01\x23\x5f\xe7\x84\x49\x08\x0e\x30\xf7\x59\xee\x6b\x97\x67\xa8\x37\x06\x96\xa0\x5f\x67\x28\x65\xd6\x01\xa6\x2f\x5c\x33\xc8\x13\x2d\xca\xda\x21\x64\x1a\x22\x18\x5e\x18\x71\x31\x60\xf9\xe0\x07\xec\x4b\xe6\x44\x83\x47\x63\xae\x19\x90\x5e\x45\xdb\xde\x39\xc2\x4c\xd2\x13\xa4\x15\x96\xf2\x9a\x42\x46\x84\x56\x28\x6d\x64\x9a\xe6\x34\xf6\xcf\x97\xbf\x06\x96\xc2\x9f\xfd\xcb\xa0\xfa\x2e\x28\x5d\x05\x35\xa2\x71\x62\x3c\x26\xc3\xf6\x77\x42\xc4\x05\xb1\x7e\x96\xb5\xaf\x81\x55\x8c\xbd\x8f\xe5\xe3\x92\xef\xa1\xc7\xa4\xc2\x2c\x22\x17\x09\x96\x1b\x06\x21\x39\x1b\xc7\x49\x51\xe2\xb8\xbb\x7b\xb8\xed\xf7\x7e\x5c\xc1\xe5\xcb\x1f\x2f\x87\x01\x45\x49\xea\xdc\x73\x23\xc1\x71\x8c\x34\xfb\x9c\x70\xe3\x0a\xb4\x82\xbf\x39\x41\x66\x4d\xa8\xf4\xe2\x44\xb1\x7c\x2c\x18\xa9\x6d\x96\x85\xb5\x73\xf8\xae\x04\x6a\x09\x81\x22\x4d\x09\xe4\x99\x3c\xdc\x52\x83\x67\xd1\x44\xd1\x59\xeb\xd6\x3c\xc1\x6a\xcc\xc5\xcc\x70\xf9\xc2\xa4\x4d\xe3\xcd\x8d\x52\xa6\x88\x10\xe9\x5c\x81\xca\xae\xc7\x5a\x96\x52\xf5\x92\x5d\xf1\xc9\x67\x22\x25\x9e\x90\x6d\x1c\xd0\x55\xca\xc3\xfd\x2f\xfe\x3f\xc1\xc1\xdc\x46\xf6\x2f\x8c\xd0\x05\xf4\xbb\xfd\x74\xc3\x3e\x9a\x40\x9e\x5b\x9e\xd0\x68\xc3\x80\xbb\x8f\x9d\xde\xd5\xb0\xf7\x59\x2b\xf1\x9d\x7e\xf7\xaa\x20\x4a\xc0\xb3\xce\xc7\x7e\xf7\x6e\xd8\xfd\xaf\xee\xc5\x43\xbf\xf3\xe3\x55\x77\x78\x7d\x73\xd9\xbd\x1f\x5e\xdc\x7c\xbe\xbd\xea\xae\x88\xcc\xa9\x6d\x7c\xd9\xba\x5a\x7e\xf5\x7c\xe9\x17\x58\x61\xcd\xcb\x7c\x7b\x19\x24\xc3\x61\x9a\x80\x13\x9c\x1b\x67\x38\x46\x8c\xc7\x04\x7e\x96\xce\x3a\xe3\xb2\x4d\xce\x50\x4f\xbd\x4f\x12\x84\x53\xc5\x67\x18\xbc\x36\xc9\x62\xc0\xf0\x48\xb3\x56\x9c\x24\x5e\x78\x97\x48\x19\xd3\x2c\x56\x37\x26\x4d\x7c\x71\x42\x34\x3b\x9f\x7b\x39\x8c\xd6\x6f\x30\xa6\x0c\x02\x88\x67\x58\x3c\x1a\x37\x53\xde\x65\x7e\x28\x24\xc2\x72\xc0\xf4\xb8\x88\x35\x0c\xb5\xa1\xf0\x79\xab\xb7\x6a\xa9\x33\xc3\x8f\x44\x53\x65\x96\x46\x53\x34\x17\x7c\x22\x88\x94\xd6\xb6\x1c\x61\x66\x02\x10\xec\xeb\xfa\x1a\x1a\x30\xc6\x35\x29\x9c\x09\x3b\x26\x73\xc2\x62\xc2\x22\x6a\xb2\x15\xc1\x77\x9f\x99\x36\x27\x02\xcf\xa7\x48\x72\x70\x7a\x03\xd9\xc1\x7e\x65\x3e\x72\x37\x99\x99\xb1\x79\xec\x5b\xa0\x45\xaa\xf9\xc4\x0d\xc8\x89\x86\xca\xf0\xb1\xbb\x0c\x9d\xdb\xc5\xd8\x01\x67\xf3\x84\x40\x97\x96\xe4\xb0\x18\x9a\xd6\x85\xf5\xd0\xcb\x54\xb5\x08\xfa\xc2\x76\x63\xc6\xd2\x8e\xe8\xac\xc2\xb2\x6d\x8f\x14\xfa\x09\xb3\x38\xd1\xad\x38\x1f\x46\xf1\x2c\x42\x86\x4d\x47\xef\x1a\x77\x1a\xb7\xb9\x45\x23\x9c\xca\x6d\xae\xd1\x52\x8a\xa9\xb1\x0a\x9e\xe6\x41\x21\xb0\xbd\x6d\x7e\x29\x50\x77\xae\x59\x24\x4e\xb8\xa5\x92\x79\x3d\xb5\x41\xcb\x30\x9a\x9a\x6b\x76\x2e\x28\x8b\xe8\x1c\x27\x1b\xe9\x7e\xa5\x1c\x03\x1b\xba\xff\x1d\x1d\xeb\xed\xf3\xfd\x92\xdb\x56\x11\x31\x83\x74\x72\x3b\xcc\x6c\x09\xd7\xb0\x24\xd9\x64\x0d\x22\xf3\x68\x12\x2c\x78\x6a\xfc\x71\x40\x17\x12\x57\x1c\xd5\xb3\xaa\xe5\xd6\x27\x03\x17\x03\xa0\x37\x58\x6c\x13\xf9\x53\x47\xbf\x52\x2b\xb6\x77\x13\x8c\x87\x93\xdb\xea\x36\xab\x56\xc0\x7b\xf8\xaf\xa6\xbd\xf3\x19\xcf\xf5\x9e\x89\x52\xa9\xc0\x53\x9c\xcd\xd1\x2a\x49\xa5\x50\x76\xcf\x77\x9e\x05\xb5\xb7\x5f\x8d\x9c\x84\x36\x00\x6a\xb9\x93\x42\x0c\x81\x87\x08\x60\xf7\xf8\x38\xd5\xb2\x2c\xc2\x10\x85\x80\xbe\x23\x67\x93\x33\x74\xf3\x4b\xf7\xee\xae\x77\xd9\x3d\x41\x9d\xdb\xdb\xee\xf5\xe5\x09\x22\x2a\xfa\xde\xc5\x2c\xda\x80\xa5\x01\x53\xdc\x4a\x2b\x0b\x34\xe5\xcf\xc0\x1b\x89\x98\x90\xc2\x9c\x5d\x74\x13\x84\x2a\x4f\xa8\x54\x36\x7c\x56\xf3\x95\x7c\x58\x5a\xde\xaf\xdc\x21\xa9\x9a\x6e\xb3\x35\xb0\x94\xe9\x4c\xeb\xb2\x43\x8a\x67\x43\xc1\x93\x6d\x98\xc2\x25\x4c\x05\xd4\xe5\x0c\x4c\x81\xe2\x19\xd2\xcd\xda\x50\x90\xcc\xe5\x98\x89\x74\x5a\x30\xd2\x7c\x59\xdf\x9b\xde\xbd\xe5\xbc\x0f\x36\x1e\x8d\xba\x10\x08\x00\x5b\xa8\x61\x15\xb9\xd9\x78\x68\x2d\xf5\x43\x1c\x45\x5a\xe5\xde\xf1\xa4\xf2\x8e\x32\x97\x80\xed\x68\x6f\xd3\x5c\xb5\xcf\xdd\x30\xe7\x9a\x83\x41\x30\xb0\xbe\x72\x25\x8f\x68\xde\x7e\x45\xbf\xa3\xc5\x52\xaf\xb0\x65\xcf\x06\xec\x41\x66\x26\x15\x73\x09\x4b\x02\x2b\x29\xd1\xf3\x94\xc0\xd1\x58\xa0\x29\x7e\x22\x85\x2e\x5d\x0e\x89\x6e\x78\xc1\x53\x51\xc5\xe8\x06\xec\x92\xcc\x05\xd1\x92\x7e\xd9\x81\x92\xed\xe9\xbb\xe2\x4e\x0c\xfb\x3a\xec\xeb\xa3\xdf\xd7\x17\x49\x2a\x15\x11\x1d\x29\xe9\x04\x0c\x89\x5b\x09\x70\xa6\xb1\xe1\x9c\xf3\x64\xd8\xc2\x26\xd2\x9e\xe2\x05\x4f\x58\x21\xe0\x43\x1a\xa4\x03\x9e\x82\x7c\x54\xb8\x36\xb9\xbe\xeb\xbc\xcc\x61\x3b\xbc\x06\x32\x38\x97\x59\xc7\x01\x4a\x6c\x25\xe2\xe0\xaa\x56\x9a\x5a\x42\x7b\x17\x73\x2e\x8c\x7c\x93\xb9\xcb\xf2\x21\x96\x0e\x93\x13\x45\x28\x73\x64\xcb\x3f\x82\xfd\xac\x09\x6c\xe4\x8e\xdf\x53\xae\xb0\xfc\xfe\x6c\xc0\xb4\x10\xf5\x48\x16\xc6\xdc\xaa\xc5\x94\x3f\x68\x59\xfc\x54\x12\x26\x21\xdc\xfb\x0f\xc6\x3d\xa7\xb7\xb8\x33\x57\x1b\xd5\x94\xcc\xe6\x09\x56\x10\x74\x9d\xf5\x02\x21\xba\xb6\x51\x2b\x25\xe5\x01\xd0\x20\xe7\x9b\xb9\xd8\x67\x66\xf8\x13\xa2\x20\x73\x5c\x51\x05\x3a\x53\x9c\x6a\xf2\x2c\x0f\x7d\xa5\xe9\xca\xec\x0a\xc1\xc1\x4f\x12\xa7\xdb\x31\x7e\xb9\xdc\xc6\x4a\xce\x98\x69\x0b\xf7\x36\xe6\xfd\x83\xb3\x1b\x45\x82\xb3\x52\x34\x8c\x56\xe6\xcc\x4a\x8f\x0c\x3b\x70\xfe\x6b\xc2\xce\x9e\xe9\x23\x9d\x93\x98\x62\x88\x80\xd7\xff\xfa\xa0\xe7\xf5\xef\x17\x77\x37\xd7\xc3\x3c\x93\xe7\x3f\x07\xac\x93\x48\x9e\x65\x29\x20\xc6\x59\x16\x6e\x3f\x17\xc4\x89\x84\x76\x2e\x60\x75\xcd\xcd\x88\x03\x56\x37\x82\x98\x47\xf2\x0c\x3f\xcb\x33\x3c\xc3\xff\xe4\x0c\x5c\xe9\x1d\xf8\xf3\x22\xe1\x69\xfc\x05\xab\x68\xfa\x01\xce\xb5\xfa\x40\x9e\x08\x53\xc6\x4d\xa5\xc9\x15\x43\x4e\xb2\x84\x68\xfd\x7f\xd7\x63\xce\x93\x8a\xa4\xd6\x64\x23\x32\x57\xe8\xff\x15\x64\xc4\xb9\xaa\xbe\xa4\xf8\x78\x2c\xc9\x5a\x17\x52\xae\xa4\xdd\xdf\xa0\xbf\xfd\xc7\x0f\x7f\xd2\x5b\x68\x13\x1a\xf7\xee\x6f\x86\xfa\xfb\x7f\xbf\xb4\xdf\xcb\x35\xd8\x9d\x49\xa5\x95\xd6\xd5\x6c\xa8\x61\x02\xe7\x53\x06\xb7\x9f\x00\xe7\x05\xb0\x37\xd8\x0e\xf9\x3a\x56\x71\xb7\xcb\x42\xeb\xdb\xa9\x6c\x1b\x11\x13\x54\x6c\x6f\x8e\xe8\x14\x31\x8e\x66\x26\xd6\x14\x33\xf4\xd7\x9f\x7f\xac\x5e\xc0\x54\xd0\x8d\x3a\xa4\x16\x85\xc2\xeb\x52\xd2\x7f\x12\x89\xf4\xae\xd1\xbb\x98\xcf\x74\xd7\x82\xc8\x29\x4f\x62\xf4\x4c\x40\x4d\xb2\x71\xa0\x99\x56\x2e\xc8\x80\xf9\x4d\x40\xc8\x21\xc2\x89\xe2\x13\x02\x77\xb5\x53\xd4\x14\x11\x5a\x54\x31\x59\x1a\x8a\x0b\x72\x62\x80\xd9\xee\xff\xe2\x62\xab\x61\x9a\xf0\xc8\x25\xb5\x58\x93\x5c\x3c\xaa\x9e\xf9\xb8\x6c\x7a\x45\xf5\x36\xfc\xf2\x22\x5b\xb3\x6d\x35\x69\x6c\x12\x8a\xb5\x61\x95\x57\xa6\x7a\x30\x34\xe2\x6c\x98\x50\xf6\xb8\xd1\x62\xb8\xc4\x70\xa4\x5b\xb0\x34\xd3\x2d\x66\x76\x6e\x63\x01\x59\xe3\x7c\x7c\x4c\x93\xc4\xa4\xb6\xf8\xcb\x03\x72\x97\xa1\x1b\x08\x03\x73\x93\x03\x4a\x62\xeb\xf7\xb2\x9a\xb0\x20\x0c\x02\xde\x06\x6c\xb4\xb0\x3e\x5b\x79\x82\x64\x1a\x4d\x5d\x66\x5e\xc4\x99\xd4\x62\x34\x17\x28\xe2\xb3\x99\xd6\x7a\x61\xc9\x14\xe7\x89\xb4\xd1\xee\xec\x54\xe1\x48\x0d\x58\xde\xdf\x8a\x93\x67\x8a\x32\x6d\x97\xba\xd7\xde\xa5\x93\x17\x7f\x6a\x14\xb8\x69\xec\x43\x51\x80\x11\xcc\x78\xa2\x3c\x50\x0b\xbe\x7c\x96\xcc\x82\xd5\x68\x06\x72\xca\x85\x1a\xc6\x95\x3c\x67\xe5\xa6\x29\x33\x42\x46\x4e\x13\x08\x1a\xe6\x4f\x5a\xf8\x27\xcf\x99\xf1\xb5\x69\x08\x7a\x57\x37\x8d\xa0\xdd\x31\x6a\x1c\xd9\xba\x5b\xb0\x86\x56\x06\x98\x24\x2a\xc6\x84\xaf\x1a\xe3\x3d\x7c\x75\xa1\x3f\x6a\x24\x5e\xf9\xdc\x39\x21\x88\xc7\x39\x86\x9e\xb9\xd7\x6d\x46\x48\x13\x4d\x2d\x74\xc2\xfe\x32\x47\x9b\xa6\xf2\x50\xb4\xe4\xea\xb1\x80\xc9\x5e\x12\x90\x35\xb1\x18\x51\x25\xb0\x28\x00\xa0\x64\xfa\xa0\x24\x58\x40\x7c\xd6\x80\x19\x38\x3c\xa3\x29\xc4\x28\xa6\x12\x12\x44\xe0\x2e\xf5\x9c\x61\xa8\x9d\x12\x58\x3a\xda\x79\x9e\xa3\x89\x3f\x87\xc0\xb2\x7c\x6b\x38\x66\xa7\x3b\xca\x60\xbf\xb4\x7e\xc6\xa3\x34\x17\xe4\x22\x90\x70\x2d\x54\x10\xa2\x4c\xd2\xc9\x54\x21\xca\xac\xdd\x11\x27\x13\x2e\xa8\x9a\xce\xe4\x09\x1a\xa5\x52\x6b\xa1\x26\x58\xcd\xc4\xa3\x10\x15\xb5\xe2\x42\xdb\x26\x11\xc7\xa5\x06\x97\x55\x94\x0d\xb6\x46\xbb\x43\xd9\x2d\xdd\x15\x2b\x36\x4e\x27\x83\x4f\x2c\xb7\x41\x89\xcc\x50\x37\x91\x89\x03\xe4\x0e\xb0\xea\xf7\x94\x48\x55\x77\x0e\x00\xec\x72\x67\x5e\x8a\x97\xa8\xa4\x85\x4c\x32\xa8\x20\x2e\x76\x1b\x24\xaf\x22\xe0\xa6\x01\xa5\xca\x9c\x4e\xb3\xb9\xaa\x0c\xdc\x5a\x76\x15\xdd\x79\x50\x46\xed\x88\x0d\xc9\x58\xb0\x9b\x01\x80\x6e\xc0\xee\x09\xa9\xc7\xa7\x5b\x5a\xfb\xdf\xe0\x28\xc1\x14\x6c\xa2\x47\xf3\x96\xdf\xc6\x89\x7d\xd9\xbd\xbf\xb8\xeb\xdd\x1a\xc8\x89\x9b\xbb\xcf\x9d\xfe\xb0\xc2\xaf\x5d\xf1\xd6\xe7\xce\xdd\xcf\x97\xab\x5f\xfb\xa9\x5f\xcc\xca\xae\x78\xe5\xee\xbe\x39\x99\xa3\xc5\x10\x2b\x92\xc2\x2a\xfb\x39\x47\xf3\x85\x9a\x72\x96\x85\x28\xc4\x05\xde\x74\x8a\x4c\x46\xb0\x82\x10\x22\x21\x55\x85\xe3\xb0\x0f\x71\x39\xab\x25\xcc\xe2\x62\x19\x74\xb9\x9d\x8a\x46\x6b\x9c\xc8\x4f\x09\x1f\x81\xdf\xda\xca\x3e\x16\x98\xae\x21\x02\x7d\xcb\x78\x9f\x4b\x2a\xe7\x09\x5e\x2c\xf5\xb0\xea\xca\xb9\xc6\x33\x02\x11\xc7\x39\x2c\x9e\x4b\x16\xd1\x2b\x03\x09\x4c\xd9\xbd\x4e\xc7\x90\xc9\xa4\x28\x56\x04\x8d\x88\x7a\x86\xbc\x39\xf7\x6b\x66\x4b\x75\x01\x23\xf2\x6c\xc0\xc0\x9c\x33\xd0\x44\x8e\x53\x88\xf6\x1b\xbc\x3b\x41\x83\x77\x31\x79\x22\x09\x9f\xeb\x95\xd7\x3f\xd4\x5c\x32\xdd\x19\xa6\xc9\x35\x57\x99\x65\x6e\x9b\xf5\x14\x24\xa2\x73\x90\xcc\x87\x44\xb7\xfb\x72\x82\x47\x61\x27\x3b\x76\x06\x63\x40\x38\x8e\xb5\x92\x0d\xac\xcc\x0d\x2f\x0f\x01\x62\xde\xd4\x0b\xc5\x2e\xd7\x11\x29\x32\xf3\xb7\xe9\xd1\x6f\xb3\x68\xf6\xac\x5c\x01\xf6\xb4\x47\x97\xec\xb6\x17\xb9\xd6\x4a\x7e\x26\x0b\x48\xc1\xb8\xc5\x54\x6c\xe8\x9a\xad\x8a\x79\xdd\x8b\x93\xb6\x5b\xd1\xd1\x01\xb9\x6b\xab\xe9\xb0\x9d\xe3\x36\x8b\xd5\x7b\x29\x2d\xd5\xc5\x72\x65\x1d\xb7\x54\x5b\x1f\xea\x94\xd4\xda\x10\x06\x54\x56\xbc\xe6\x24\x5a\x43\xe3\xca\x06\x78\xaf\xbf\x5b\xa9\xa9\x64\xe2\x9a\x8b\xbf\xcb\x57\xc1\x26\xc7\x97\xf3\xf1\xc9\xca\x11\x47\x09\x97\x45\xac\x9c\xd6\x83\xbe\xb0\x9f\x36\x8d\xbb\xeb\x6f\x5f\x2d\x17\xae\x15\xd0\x50\x41\xf8\x12\xc6\xa5\xb9\x67\x94\xf5\x90\xd9\xb7\x4f\x10\x85\x68\x4b\x50\xc8\x92\x1c\x39\x80\xc5\x28\x77\x83\x0c\x58\x1e\xb3\x22\xd1\x33\x49\x20\xcc\x2d\xe2\xb3\x39\x98\xf8\xed\x70\x6d\x4b\x24\x36\x11\xc3\x27\x88\xa7\x4a\x37\x66\x72\x72\x9c\x11\xd7\x26\xfc\xe4\x6e\x0f\xe3\x7b\xb3\xc1\xef\x19\x5e\xb6\xd9\xeb\xe6\x2e\xa5\x0c\x7d\x22\x0a\x5a\x81\x32\x0b\xfe\x04\x41\x4f\x28\x87\x50\x56\xd3\x7e\x8b\x13\x65\x67\xb2\xc6\xca\xe7\xc0\x29\x3f\x26\x7c\xd4\x6c\x24\x80\xc6\xd1\xc3\x5d\xcf\x59\x24\xf3\xf8\x29\x0f\x94\xb9\xe0\x51\xec\xde\xde\x75\x2f\x3a\xfd\xee\xe5\x19\x7a\x90\x44\x93\x27\x9b\x2e\xe4\x57\x67\x2a\x89\x19\xb9\x45\x62\x61\x52\x11\x5c\x67\x08\x21\x42\x14\xb2\xa0\x57\x30\x8e\x22\x4c\x4b\xf3\xc6\x06\x90\x14\x6a\x0d\x75\x00\x2c\x54\x9e\xa7\x8d\xcc\x5b\x75\x02\x21\x4e\x6a\x78\x3c\x51\x6a\x66\xbc\xb3\xe5\xc8\xbc\x55\xdb\xa7\x18\xd1\xb7\xef\xc9\xc0\xd1\x52\x53\x42\x05\x6a\x35\x2d\xb3\xa9\x86\xed\xe7\xe4\x85\xb8\x7f\xc6\xf3\xe6\xf4\x53\xfc\x5c\xd8\xb4\x46\x14\xf6\x7c\xf7\xfb\x3e\x07\x8e\xad\x0d\x0d\x2b\xdc\x7e\x82\xb9\x43\xcb\xf0\xd6\x8c\x6f\x9a\x8c\x0f\xe9\x8c\x64\xfe\xc4\x4a\x83\xb0\x71\xac\x12\xc1\xd9\x81\x5f\x28\x43\x85\x2b\xf1\x04\x8d\xe9\x57\xdb\x68\x1e\xdf\xee\x5e\xf5\x02\x1e\x6a\xe2\x29\xa7\x78\xf9\x4c\xad\x21\x36\xdc\xc2\xf7\x8d\x42\x24\x97\x5a\x24\x8a\xb4\xb8\x24\x48\xc4\x85\xbe\x29\xa0\xdb\xdc\x0b\xb1\x4a\x64\x50\x58\x68\xa2\x2c\x7b\x65\x9a\x4e\x7f\x5e\x5a\x25\xc6\x8a\x9c\x6a\xd1\x6b\x45\x02\xb4\xcd\x91\x81\x6c\x1a\xac\x3c\x38\xb0\xfc\xe6\x19\x91\x09\x66\x2e\x34\xbb\x66\xb8\xee\xca\xdb\x82\x55\x69\x15\x08\x43\x7a\x18\xc8\x57\x90\xfa\x53\x18\x87\x9c\x03\x3d\x1b\xc7\x61\xa3\x5f\x0e\x81\x6c\xcf\x38\x0b\xc6\xa9\x19\x6c\x3a\x8f\x0f\x69\xb0\x09\x96\x0a\xd9\x31\xd5\x99\x22\x3c\x15\x71\xbf\x46\xd8\x82\x6e\xdf\x56\x79\xd3\x5b\xa8\xa8\xc5\x12\xf0\x8c\x48\x87\x9b\x62\x50\x62\xb4\x4e\xe3\x04\xe1\x0b\x58\xa1\xec\x6c\xdf\x19\x29\xcb\xdd\x12\x3e\x33\x81\x20\xfd\xe5\xa6\xcf\x50\x87\x2d\xe1\x65\xb9\xb8\xac\x02\xbd\xcc\x9d\x84\x93\x67\xbc\x90\x68\x2e\x0c\xb4\x8c\x89\xdc\x77\x93\x07\x0d\xac\xf8\x51\x16\x0a\xa1\x5c\xea\x04\x02\x5b\xcc\xea\xa0\x39\x27\xf7\x0e\xf7\xe0\xca\x2b\x45\x95\x67\x02\x79\xde\x5c\x6e\xab\x68\xc1\xea\x14\x19\x46\x53\xcc\x26\x64\xe8\x8c\xac\x9b\x68\x4b\xba\x9d\x0b\x68\xe6\xd2\xb6\x52\x7d\x39\xdd\x1a\x85\xc9\x96\xb5\x31\xaf\x66\x06\x44\x7d\x08\xa4\xc2\x13\x82\xcc\x88\x5a\x99\xa5\x0b\x11\x63\x16\x6c\x18\xf4\x04\xdb\x6a\xb7\x18\x45\x5f\x27\xbc\x43\xe8\xd3\x15\x1e\x91\xe4\x75\x22\x27\xa0\x6b\x6b\x9c\x07\x6f\x9d\xc9\x06\x20\xe8\x19\xec\xf9\x25\x96\x61\xad\xf7\x22\xad\xca\x0d\x68\x9a\x27\x1c\x39\x7b\xd2\xb6\x99\xa8\x2b\x81\xb2\xc9\x54\xeb\x0a\xa3\xf8\xd7\x9e\x57\x40\xa4\xca\xc0\xe6\x5f\x7f\x65\x9b\xf2\x66\x03\xf1\xea\x98\xd4\x8c\x63\xeb\x42\x26\x2b\xa7\xb2\x31\xc8\x40\xcb\x9a\x85\xbd\x31\x62\x9c\x11\x44\x65\xfe\xb2\x2a\xa6\x43\x65\x10\x3d\x5a\xc4\x37\xc6\x97\xac\xf8\x58\x56\x53\x6a\xdf\x96\x96\x1c\x3c\x21\xb3\x0d\xb8\xfc\x6e\x46\xb4\xa2\x8a\xc5\x02\x20\x3e\x0d\x1f\x2e\xca\x74\x2b\xc7\xb9\x73\x81\xbb\xef\x10\x5c\xbd\x48\x5d\xc5\x11\x88\x91\xa5\xc1\x21\x83\x83\x6a\x5f\xb2\x1f\x59\x98\x9a\x01\xcb\x2c\x1b\xb0\x11\xa9\x44\x33\x3c\x07\x9f\x1e\xe3\x2a\xff\xca\xc0\x2e\xa9\x6c\x09\x4f\x9c\x20\x2e\x4d\x69\xb0\xd5\x14\xe0\x62\xb2\x4d\xa8\x46\xfb\xf2\x0f\xed\x0d\x4b\xee\xf2\xcf\x57\xb5\x08\xae\xe9\x80\x81\x27\xf4\x89\x30\x77\xa2\x4e\xdc\x89\xd4\x24\x71\x53\x4e\x16\xa7\x18\x82\x9c\x49\xec\xfb\x5d\x9a\xf9\xa1\x31\x07\x1d\x82\x35\xb4\x3d\xc9\xfa\x95\x41\x3c\x06\xa2\xad\x80\xad\xef\xc2\xd2\xfd\x33\x62\x51\x83\x4d\x1e\x3a\x96\xe8\x0f\x8c\xab\x3f\x78\xb8\xca\xce\x74\x02\x9f\x3a\x03\xd8\xc9\x52\x1d\x1c\x60\x19\x76\xdb\x22\xec\xe1\x7b\xad\xa4\xfc\xb6\x91\x09\x79\xd8\xfd\x5e\x65\xe1\xee\x72\x0e\x5e\x5d\x21\xb1\x10\x2f\x80\xca\x97\x52\xd9\xdc\x6a\x6a\x15\xe6\x27\xbd\x60\x66\x95\xab\x02\x04\xb2\xb5\x68\x15\x18\xb0\x84\x47\xb0\xcd\x6e\x9b\xb5\x8e\xdb\x5a\x01\xc1\x5c\x6d\x15\xd9\x24\xcb\xb4\x4e\x2b\x10\xc5\xc0\x39\x5b\x84\xa3\x06\x63\xf8\x6c\xc0\x3e\x72\x61\x05\x00\x69\xab\x1c\x8c\x70\xf4\x78\x4a\x58\x8c\x70\xaa\xa6\x06\xeb\xd7\x7a\x35\x16\x76\x37\x68\x39\x07\xb6\x4d\x06\xe4\x41\x65\x84\x45\xec\xea\x6d\x3c\x71\x37\x8a\x01\xf3\x1a\x81\x3a\x0a\x50\x3d\x0b\xca\x1a\xd7\x29\xba\x44\x6a\xed\xae\x8e\x16\x55\x95\x6d\x97\xea\xda\x36\x9f\xb3\x42\xa5\x5e\xa8\x00\x01\xe1\x55\x7c\xbc\x4c\x9d\x9e\xb3\x75\x3a\xed\x52\xef\xe7\x65\x1f\xc8\x89\xd5\x67\x8c\x41\xcc\xce\x40\xcb\x59\x3f\x38\x5e\x5b\xc0\x2c\x1e\xa7\x02\x82\x85\xab\xda\xfc\x2e\x9a\xd2\x24\xf7\x9c\x7c\x7f\x92\x0d\x53\x37\x99\x90\x27\x92\x18\xc4\xfc\x48\x40\x5e\x80\xb1\x59\xfe\x80\xfe\xb7\xa9\xf6\x8a\xfe\x34\x60\x9f\x80\x0d\x27\xc9\x02\xf0\x3c\xb3\x96\xb1\x2a\x35\xf3\x58\x39\x00\x65\x13\x91\x50\x71\x20\x66\xad\xa7\xf8\x89\x0c\x98\x6b\xe6\x7f\xa3\x47\xf4\x47\xf4\xa7\x3a\xe5\xd2\x85\xf7\xef\xd9\xca\xf2\xd1\x0b\x9e\xf7\x6e\x39\xcb\x28\x2d\xbf\x71\x46\x98\x82\x09\xb4\x02\xd7\x23\x83\xe5\xa6\xec\x89\x47\x4b\x39\x24\xfe\xa9\xc5\x82\x30\x35\x64\x3c\x26\x43\x52\xe1\x50\x6d\x60\x12\x5a\x08\xb8\xe6\x31\x59\xe9\x0e\xcd\x98\xe9\x17\x30\x1c\xc9\x74\x94\x2d\x07\xc0\x0b\x64\xb9\xe4\x99\xed\xa3\xb8\xd3\xaa\x47\x9e\x61\xdf\x6e\x32\xee\x4d\x5d\xb9\xb9\xd8\x88\x73\xf0\xdd\x6a\x77\x62\x82\x95\x93\x26\xcb\xc7\xb1\xec\x86\xd0\x2f\xeb\x99\xdb\xcb\xca\x43\xf5\x85\xca\x2b\x82\x4e\xa8\xd6\x1e\xda\xbb\x8b\x81\x13\x6e\xe2\x4b\x31\x10\xa7\xad\x9c\x29\x39\x29\x1c\xcc\xcb\x69\xb6\xff\x72\x17\xe8\x88\xa7\x65\xf5\xc1\x12\x80\x4a\x3f\xd8\xc0\x6a\x0a\x0b\xcd\x87\x27\x26\xff\x90\x4c\xa9\xc9\xf8\xef\x5c\x5c\x21\x7d\x3a\xf8\xcc\xc0\x62\x01\xd1\x52\x35\xe5\x82\xfe\xb3\x69\x6f\x63\xa1\xe8\x18\x47\x6a\xb8\x93\x2a\x32\xf5\x9b\xa9\x63\xfb\xe9\xd5\x57\xaa\x5b\x42\x38\xc0\x4f\xc4\x0b\x40\x84\xf0\x42\xdb\x8a\xcc\x1c\xb9\x65\x7e\xcb\x05\x62\xfc\x39\x87\xc5\x72\xdf\x03\x12\xb4\x97\xb8\x81\xb5\xca\x35\x87\x08\x62\x49\x61\x7f\x02\x48\xd5\x7b\x65\x92\x32\x01\xe0\xdc\xc0\x4b\xe9\xed\x39\xc5\x2c\x4e\xdc\x15\x82\xb8\x89\xe8\x59\x3c\xe3\xc5\x5a\x3e\x75\x3f\xae\x32\xcf\xd2\x33\xcb\x5f\x54\x82\x80\x07\x18\x49\x4d\x15\x54\xcd\x2a\x45\x18\x8d\x52\x00\xd6\xd5\x34\x19\xa7\x89\xa9\xc6\x11\x71\x11\x9f\x0d\x98\x0d\xa8\xf6\x7a\xd3\x22\xa0\xd3\x9a\xb0\xca\x1a\xa4\x16\x7f\xd4\xd6\xfb\x30\x66\xb9\x46\xb9\xfe\xef\x29\x49\x77\x94\x56\xf9\xaa\x81\xe8\x7d\x3c\x91\x79\x64\xb9\xa1\x8d\xbe\xf2\x72\xfa\xfe\xae\x67\x2a\xbd\x44\x64\x67\x2e\xce\x70\xbd\x8c\x9d\xc5\x14\xb1\x5d\xcb\x4c\x77\x67\xea\x19\xec\xc0\x4e\xf7\x12\x41\x3a\xcb\xa2\x67\x05\x57\xb7\xdb\xef\x29\x4b\xcb\x45\x2f\x63\xfc\x72\x85\x21\x4a\x42\xdd\x1e\xed\x60\x1b\xdc\x1d\xcb\xba\x4a\x63\xa8\x7b\x6e\x15\xcb\x6e\x8b\x8a\x0c\x79\xc5\x21\x97\xe6\x59\x50\x80\xfd\x5b\xe4\x2f\x67\xf5\x9a\xdd\x2d\xec\xf3\x18\x2d\xfc\x19\x6d\x01\x82\x75\x1c\x09\x17\xd5\x57\xe7\x1a\x76\x1d\xdb\x50\xb1\xeb\xe5\x60\x8c\xba\x13\x61\x58\xd2\xa1\x1e\x89\x65\xcc\x9f\x95\x87\x21\x2b\xef\xf2\x3a\x56\xe1\x4c\x62\x7c\xb9\x93\x91\x6d\xc7\x61\x84\xa3\x69\xed\xa4\x46\x9c\x27\x04\xb3\x3a\xa5\xa0\xf2\x71\xf9\x88\x18\xc4\x5a\x60\xdd\x49\x02\xb0\xcd\x8e\x04\xb6\xd4\x67\xae\x15\xb1\x18\xe0\xf6\x0d\x0f\x37\x01\x9f\x6e\xa0\x8a\x30\x67\x50\xa3\x6c\x92\x90\x32\xad\x6c\x5d\x84\x13\xdb\x49\x12\xa5\x89\x57\xeb\x73\x4e\x84\x1e\xb5\x26\xf1\x13\x61\x5a\x15\xb3\xe3\x70\x1e\xaa\x67\x97\xe5\x9e\x55\xf8\x3a\xc9\xba\x76\x4e\x52\x48\x25\x8d\x07\x0c\x0e\x2e\x2f\x1e\x56\xbd\x57\xa5\xd6\xde\x7c\x73\xdf\xc6\xa7\xd3\x13\x22\xd6\x3e\x9e\xf7\x45\xdb\xff\xda\x67\xd2\xf4\x3d\x84\xc0\x91\xad\xfd\xa5\x9e\x4f\x2d\xc7\xdf\x30\x0b\xeb\x30\xd6\x5e\xc8\x33\x00\xa1\x38\xc5\x58\x62\x2f\x12\xa7\x0e\xe3\x6b\xaf\x77\x49\x5e\xd3\xc4\xdd\x06\x2d\x87\xd2\x18\x7f\xd0\x32\x9a\x00\x8c\xbe\x4d\xe7\xf6\xca\x4a\xf5\x45\x3f\x7c\x96\xb4\x95\xc7\xae\xda\xaa\xbd\x4a\x60\x80\x9c\x00\xa0\x80\x2f\xc6\x70\x41\xa5\x11\xee\x5d\xed\x92\xd9\x5c\x2d\x6c\xa9\x3b\xb8\x17\x0b\xf2\x3e\xc0\xf8\x55\xf9\xfc\xcb\x77\x64\x5c\xf0\xfa\x57\x75\x06\x1d\x59\x6b\x4d\x65\x93\x8e\xd0\x3e\x2c\x4c\x09\x86\xa3\x2e\xc4\xc7\x54\x0d\x1e\xe2\xa4\xd6\x44\xb8\x03\xa6\x09\xca\x51\x0e\xbd\x61\x11\x7d\x95\x48\x89\xe6\x5d\x38\x49\x4a\xf3\xc2\x90\xe3\xae\xb2\xca\x81\xa3\xbc\xbc\x71\xfb\x08\x84\x04\x8f\xc8\x5a\x31\x07\x57\xe6\x83\xc6\x5d\x04\xaf\x40\xb8\xfe\x7c\x9e\x2c\xda\xa5\x09\xf8\xda\x6f\x25\xf2\xdd\xaa\x81\xf9\x78\x79\x8d\x77\x53\x11\x73\x6e\xb3\x21\x4a\x12\xa5\x82\xaa\xc5\xd0\xda\x52\xdb\x33\xad\x7b\xfb\xe5\x85\xfd\xb0\x8d\xa1\xe2\x1c\xb9\xfe\x9c\xed\x16\xee\x29\x41\x4d\x59\x24\x3b\x85\x36\xcb\x8d\x53\x35\xad\x44\xc4\x6a\x22\xac\x83\xe4\x6a\x37\x54\xdd\xc5\xa6\xc3\xb3\xe5\x56\x86\x7c\xec\xc0\xae\xda\x13\xb6\x5c\x87\x66\x0d\x23\xb4\xc3\xd4\x9e\x0b\xca\x85\x2d\xf7\xd2\x26\x52\x71\x86\xbf\x0e\xe7\x58\xe0\x24\x21\x09\x95\xb3\xcd\x4d\xe6\x7f\xf9\x73\xe3\x68\x2f\x4c\x59\x22\x33\xd8\x19\xfe\x4a\x67\xe9\x0c\xb1\x74\x36\xb2\x52\x2e\x96\x8f\x3e\xa2\xa9\xc3\x5f\x30\xc0\x5c\x6e\x80\x05\x14\x08\xe1\x61\xd4\x0e\x98\x87\x56\x6e\x4d\x15\x38\x9a\x52\xf2\x04\x58\xaa\x82\x11\x29\xcf\xd0\x35\x57\xe4\x1c\x7d\xc6\xf3\x3e\x08\x6a\xa6\x4e\xe8\xc4\x38\x1d\xb0\x44\x5a\x6a\x4d\x19\x55\x27\x03\x66\x21\xce\x1d\x55\x3e\x44\x9c\x19\x98\xdb\x08\x08\x9b\x35\x01\x56\x74\x87\xf7\xaa\x5c\xb6\x2a\x95\x35\xc4\x16\xf8\x79\xe8\x85\x24\x0f\x4d\xca\xc7\x1a\xfb\xf8\x0e\x3f\x9b\x20\xfc\x4b\xac\xb0\x29\x01\xdc\x24\xb9\xdb\x28\x37\x5b\x16\xca\xa0\x3b\xbb\x68\x20\x6e\x21\x46\xb2\x82\x76\x26\xe4\xf8\x3b\x7a\x46\xce\xd0\x8f\x09\x1f\xc9\x93\xdc\x54\x65\x1e\x4a\xa2\xe4\x89\xf1\xfb\xc1\xbf\x4d\x7e\xdf\xf7\x8e\xfa\x39\xdf\x87\x5a\x8e\x63\xfa\xd5\x20\x9b\xc8\xbf\x9c\x7f\xf8\x30\x5b\x9c\x8e\xd2\xe8\x91\x28\xfd\x17\xc8\x14\x95\x14\x72\xb0\x60\xb8\x0a\x64\x6c\x15\x75\x96\x01\xca\x5a\xed\x48\x9b\x2b\x25\x09\x80\xe1\xeb\x2b\x3d\xab\x96\xeb\xf0\xac\x38\xab\x2e\x05\x6a\xa7\x2c\xd2\xba\xe3\x55\x40\xd1\x7e\x19\x6d\xc5\x54\x03\xf6\xc1\xbb\xc7\x09\x9e\x94\x54\x96\x35\x94\x94\x9b\x19\xb5\xbb\x48\xcf\x1d\x82\x68\xf4\x29\x2b\x86\x0e\xbe\x77\x5e\x5e\xf0\xd6\x5a\x2f\xd6\xd9\x80\x75\x24\x7a\x26\xa6\xc8\x2f\x24\x9a\x82\xd3\x27\xa5\x72\x9a\xa5\x99\x82\x19\x1a\x1a\x35\x18\xc7\x06\x0a\xc3\x2a\x8e\x4e\xb3\x72\x6e\x31\xab\x81\xe2\x44\x92\x13\xdd\x30\x98\x54\x5d\x74\x28\x7a\x16\x78\x3e\x27\x62\xc0\x2c\x5e\x2d\xa0\xb2\x73\x6e\x23\x7f\xea\x52\x04\x82\x46\xf9\xb2\x1a\xa5\x47\x7b\x52\xcc\x42\x5d\x75\xbe\x21\x69\xb5\x89\xc2\x55\x79\x98\x8e\x7c\x5a\x16\x6d\x1b\xbe\xff\xfa\x66\xe3\x96\x63\x5e\xa5\x9d\x77\x4a\xb9\x17\x50\x43\x7c\x06\x0a\xa4\xcc\x4b\xa5\x3a\x5b\x5f\xa6\xbe\x17\xc4\x1c\x80\x3b\x87\x8f\x63\x4e\xa4\x67\xc4\x47\x99\x2d\x2e\xa1\x63\xa2\xa5\x8f\x01\xd3\xdb\xd8\x77\x38\x18\xd4\x74\x07\xa2\xae\x3b\x8d\x04\x97\xd2\xa6\x53\x98\x76\x9a\x93\xe2\xb6\x28\xd0\x68\xa0\xdf\x7b\x37\xd7\xc3\xe5\x52\x8d\xde\x33\x57\xb4\xd1\x3e\xac\x44\x4e\xa8\x6d\x6a\x65\x89\xc6\x9c\x16\x6b\x14\x69\xfc\x70\x71\xd5\xcb\x2a\x93\x95\xba\x5e\xae\xd2\xe8\xc3\xe5\xd7\xd7\x69\x5c\x9e\xb1\x57\xb1\xb1\xd4\x44\x43\xcd\xc6\xd5\x8b\x55\x0c\xe2\xde\x06\x0b\xb1\xb4\xf4\x2b\xf9\x43\x71\xcf\xac\xca\x35\xd8\xd1\x32\xd5\x5c\x2b\x11\x08\x8c\xfb\x0e\x5c\x00\xc1\x4b\xbf\x25\x15\x9e\xcd\xfd\x3c\x5a\x07\x06\x6b\xa7\x69\x8e\x5a\xdd\x25\xf8\xa2\x20\xf5\x11\x36\x41\x42\xe5\xc1\x2d\x2d\xc5\x7a\x1e\xaf\xbe\xc5\xbe\xdf\x45\x6c\xfa\xcb\x25\xa6\x27\x8b\x3c\x18\x52\x5a\xd9\xcd\xd5\x55\xaf\xb1\xfb\x8f\x48\x86\xf3\x5f\xbb\xa0\xdb\x66\x9e\x66\x78\x60\x82\x60\x69\xdd\xdf\x90\xa0\x59\x4a\xde\x5a\xc3\x3c\x9c\x8d\xd9\xa4\x78\x9f\x66\x95\x35\xbc\xab\xc6\x16\x8b\x8b\xdc\x41\xa4\x42\x90\x27\x22\x60\xef\xd8\x50\x2a\x56\x3c\xaa\x38\x11\x04\xc7\x0b\x8f\x22\x59\x1c\x87\xe9\x19\xcc\x63\x92\xce\xb4\x02\x0f\xaa\x09\xe3\xa7\x7c\xee\x74\x96\xc2\x5b\x50\x16\x85\x8e\xf5\x8d\xe5\x45\x81\xe8\x2f\xd8\x29\xf9\x4a\xa5\xd2\x72\x45\x45\x08\xac\x6b\x04\x24\x1e\x28\x96\x36\x25\xf6\x86\x1b\xbc\xeb\xfc\x78\x73\xd7\xef\x5e\x0e\xde\xe5\x29\x17\x2e\xa7\x30\x83\xf9\x72\x55\x1b\x38\x1b\xb0\x2c\x4e\x39\x43\xb5\x86\xb5\x44\x38\x8e\xf3\xf8\x68\xab\x44\x1a\x99\xad\x91\x23\x7b\xa7\x62\x65\x84\x72\x43\x33\x0f\x90\x58\x76\xa8\x27\xab\xc1\x75\x56\x38\x39\x26\x3d\xae\x21\x8f\x69\x47\x97\x8d\x0f\xc8\xab\x8c\xae\x4d\x94\x43\x8c\x64\xe4\xd9\xe9\x4a\x70\x3b\x7f\xc0\xe6\x12\x5e\x8f\xdb\xb9\x05\xd9\x60\x51\x3f\xd2\xaf\x24\xbe\xab\x91\xaa\x76\x92\xa6\xd4\x2a\xc0\xb2\x72\x15\x52\x46\xd7\xd1\xf8\xb3\xa9\x3c\xe8\xef\xda\xb3\xa5\x9b\x1c\x67\x2f\xc7\xcc\x05\xc0\x5c\x85\x30\x8a\x88\x50\x98\x32\x34\x86\x83\xcd\xa2\x05\x02\x14\x16\x02\x3e\xec\x3f\xa3\x19\x65\x00\x07\xd1\x44\xda\x87\xe2\x3c\xd6\x10\x5a\x3f\xf7\xae\x1f\xfa\x05\x51\xf5\xa7\x9b\x87\x62\xa5\xfe\xce\xaf\x8d\xb2\x6a\xa9\x85\xa6\x60\x21\x6f\x8a\x79\x6a\xa9\x85\x0e\xce\x28\x53\x39\xd1\x64\xa1\xc8\xc3\xdd\xd5\x56\xf2\x5d\xb5\xb3\xac\x16\xf8\xdd\x97\xae\xaa\x61\x2e\xda\x7c\x1a\x93\x68\x15\x34\x6d\xfb\x7d\x64\xa2\xa0\x34\x1d\xac\x35\xd1\xc2\xd6\x61\x89\xe6\x58\x58\x3f\x54\x6c\x02\xa0\x8a\xe5\xde\x8c\xe6\xd5\x04\x0b\xf2\x89\xa8\x5f\xf4\xd5\xc7\xd9\x2e\x92\x4b\xac\x28\x0b\xfe\x51\x32\x7c\x32\x0d\xaf\x71\xd2\xec\x50\x1a\xf2\x97\x9c\xb0\x0c\x3d\x20\xdb\x83\x0f\xa6\x71\x66\xca\xfe\x77\x74\x73\x40\x11\x17\xa6\xa9\x55\x52\xce\xf4\x8e\x34\x18\xb9\x0e\x58\xd7\x6b\x8e\x8f\xcd\xc7\x2d\x61\x06\xbd\x64\x01\xdd\x56\x4e\x4a\xd4\xb9\xed\x55\xd0\xfa\xaa\xec\x42\x7a\x5b\x35\x8a\x92\xcc\x9b\xb5\x6b\xe4\x2b\x2f\xe7\xf4\x20\xa0\xae\xec\x4c\xb7\xc3\xb6\x32\x4e\xff\xdb\x62\x24\xc1\x21\x40\x30\x57\xa9\x0c\x85\x5c\xf2\x15\x68\xcb\xeb\xa5\x57\xe6\x64\x58\x13\xc9\xca\x1f\x90\xcd\xae\xf1\xd1\x9b\x96\x43\xb7\x4f\x7c\x34\x27\x6e\xaa\x20\xdb\xd8\x82\x9d\x21\x5c\xe5\xb3\x69\x03\x71\xf5\x8b\xd9\xd1\x19\x02\x0a\x60\xba\xb8\x2a\x9b\x2e\xe4\xda\x02\x12\xf8\xd3\xf5\x77\xdb\x7a\xa8\x58\xf9\xf8\x9c\xf9\xdb\x02\x8c\xe3\x39\xb6\x76\x07\x50\xa2\x5c\xf9\x8b\xaa\x6a\x89\x67\x03\xe6\x05\xac\x48\xa3\xf6\xe8\x33\xe2\x2a\xce\x40\x19\x63\x06\x68\xe5\x90\xfb\x94\x09\x3f\x85\x15\x28\xe3\x1e\xa8\x69\xb1\x66\xcc\x52\x3f\xf6\x74\xca\x29\x76\xd9\xa5\xce\x82\x62\xe3\x00\x7d\xfb\x12\xb4\xe7\x55\x89\xb0\x1d\x83\x39\x1a\x8c\x16\xd8\xab\x41\xe8\x21\x12\xc4\x9c\x48\xf6\x5e\x65\xf9\xbb\x34\x59\xb8\x90\xea\x92\x7b\x40\x4b\x75\x98\xda\x96\x9b\x0f\xf8\x0e\x20\xb7\xd6\x55\x1c\xbc\x63\xb5\xd2\x4c\xe5\x7c\xbc\xb0\x13\xfc\x58\x24\xe8\xb4\xce\xaa\xfe\x75\x4e\xa2\x4d\x70\x81\x6e\xb1\xc0\x33\xa2\x88\x68\x0a\x47\x2a\x56\x08\x07\x11\xc7\xad\xa0\xed\xd7\xac\xa2\x29\x9f\x52\xae\xb3\x93\x69\xb7\x57\xab\x70\x7e\xb2\x59\xac\x05\x69\xa6\xa7\xf1\x8b\xb5\xfc\xaf\x39\x0b\xdb\x4f\x3e\x0d\x1b\x6d\xe5\xc1\x3a\x6d\x3b\xa7\x97\xc1\xb7\xe9\x2f\x21\xc5\x14\xc2\x85\x0e\x04\xd8\x66\xf5\x28\xeb\x10\x6d\x56\xf1\xd2\x9d\xf0\x6e\x97\xe1\xe0\x32\x93\x4b\x87\xaa\x90\x3b\x01\xbb\x04\x54\x2a\x03\xee\x52\x8d\x4a\x03\x42\x4b\x55\x84\xa4\xe7\xf6\xb3\x98\x85\xb9\x41\xd7\x4a\x56\xe5\x8a\x61\x25\x72\xad\xe0\x71\xbb\x42\xec\x08\x12\xcd\xae\x25\x9a\x55\x5b\xb9\x10\x5d\xab\x77\x27\x11\x25\xf0\x20\x5b\xc9\xdb\xa2\x3e\x14\x27\x08\x29\x5d\xf6\x8a\xb4\xe5\x80\xe1\xea\xa7\x2c\xfb\x57\x91\x83\xbb\x4d\xed\x6f\xd5\xaa\x5c\xd5\x33\xcf\x05\x05\x1e\xa8\xc4\x97\x06\x6c\x5c\x0d\x8c\xd6\x84\x41\x1a\x2b\x7f\xef\xda\x38\xb0\x20\x67\x7c\xc1\x53\xf4\x4c\xe5\x14\x29\x3e\x60\x10\x27\x98\x79\x03\x14\x47\xe6\xc5\x13\x78\x0b\xb0\x2d\x64\x3a\x9a\x51\x85\xb0\x37\xc3\x82\x49\xf2\xc4\x9e\x67\xfd\x01\xcc\xb8\x12\xbe\xa0\x0a\x77\x69\xc5\xa1\xd9\xc0\xbe\x96\x37\xb2\x2d\x42\x81\x17\xd3\xbc\x5f\x8c\x02\x4f\xe3\xf1\x35\xcc\xca\x33\x17\x40\x0a\x50\xb5\xb5\xc1\x22\xc1\x02\x5c\x2f\x95\xaa\x74\xb7\x58\x43\xcf\x0a\x80\x82\x7c\x21\x5a\x21\x14\xe4\xaf\xef\x02\xa2\xa0\xae\xf6\x5c\x53\xca\xaa\xfb\xa4\xc6\xfe\xed\x52\xa1\x15\x77\x81\xf3\xbe\xa4\x74\x5b\x2b\x29\x1d\x1a\x54\x5d\x9e\x10\xb0\x79\x78\x79\x5d\xf4\x32\x9c\xf1\x88\xb3\x98\xae\x11\x2f\x0c\xf5\xc5\x46\xe9\xb8\xc3\x16\xab\x91\x8f\x66\x7e\xa0\xbe\xb5\x97\x78\x92\x48\x35\xe6\xe6\x4a\x95\x35\x6f\xdf\xdf\xe9\x5e\x4a\x68\x11\x8c\x88\x94\x6f\x27\xc6\x15\xe4\xfd\x44\x2a\x59\x54\xe4\xa2\x0e\x58\xb5\x94\xd4\xcc\xb7\xb7\x4d\x23\xd9\x29\xec\x9e\xc7\x23\xdc\x2c\xac\xd5\xed\x4b\x16\x88\x67\x14\x7a\x62\x41\x36\x4a\x62\x70\xee\x86\xac\x0b\xa0\xd2\xc2\xd1\x26\xb9\xe6\x15\x9c\xa3\x7a\xe8\x4b\x49\x1e\x2b\xcf\xae\x15\x0c\x76\xa8\x7e\x2e\xdd\x20\xad\x73\x62\x32\x39\xde\xde\x18\x36\xa8\x3b\xce\x6c\x0d\x25\x77\xf2\x26\xe5\x8d\x01\xce\x76\x67\x20\xbc\x65\x64\x0a\xdd\xf8\x09\xb8\xa0\xed\xd8\xb1\x09\xc7\xc9\xa0\xe1\x4b\x6b\x52\x98\xb1\x09\xa9\xdc\xcb\xac\xd7\xad\x49\xed\xf9\x44\x85\x8d\x49\xa6\xbe\x75\x03\x8a\x51\xdb\x50\xce\xd2\x6d\x91\x09\xa0\x29\x8b\x89\x60\x04\xab\xe9\xcb\x65\x82\x5c\x6c\x6b\x42\xf7\xc6\xb7\xdf\xac\x10\x3b\x52\x5c\x4c\x0e\xd9\x66\xb8\xc5\xe2\xfc\x2b\xc7\xa9\x5f\x6f\x63\xcd\xb2\x01\x12\x59\x79\xea\x25\xf5\xb6\xc2\xb4\xe9\xe1\x0f\xad\xb3\x4b\xb7\x4a\x16\xa9\x56\x39\xf7\x93\x36\x53\x61\x9b\x5a\x4a\x98\xd1\xa7\xdd\x2f\xea\xbd\x82\x24\x6f\x22\x3f\x65\xff\x29\x13\x4d\xe5\xc3\x53\x2f\x8b\x02\x6a\xb8\x2b\x4c\x99\xe5\x5e\x4d\x89\x13\x5a\xee\x9d\xe1\xaa\x5c\x89\x83\xcf\xc2\x79\xf3\x49\x38\x21\x25\x23\xa4\x64\x54\xac\x51\x48\xc9\x40\xe8\xd0\x52\x32\x56\xa9\xa0\x4d\x46\xda\xcc\x6f\x08\x65\x5e\x0b\xb5\x95\xcc\xfa\xae\xd0\x23\x37\x4f\x3b\x70\x76\x4e\x3f\x66\xcb\xfe\x62\x7f\xa8\x0c\xdb\x5a\xfa\xac\x3c\x5b\xdf\xe6\xca\x16\x65\xd7\x05\x16\x71\x62\x21\x08\x6d\x50\x75\xd1\x46\xd6\x64\xce\x1d\xb0\x9f\xf8\x33\x79\x22\xe2\x04\x61\x85\x66\x1c\x70\xad\xf2\x18\x1e\x38\x08\x05\x2c\x7d\x13\xab\x81\xd1\x35\x9e\x91\xd8\x94\xda\xf4\x42\x2f\xad\x51\xd9\xba\x83\xab\x90\x76\x01\x34\xd6\x2c\x83\x8b\xed\x18\x30\x13\x0e\x69\x42\xf0\x40\x56\xa0\x6e\x62\xb0\x61\xfe\x90\x39\xab\xff\x70\x86\xfa\xfa\x7e\xa2\xb2\x38\x5e\x0f\x78\xaf\x6e\x6c\x03\x36\x11\x3c\x9d\x67\x76\x3e\x3e\x32\x35\x97\x4d\x84\xd6\xb2\xb3\x1a\x06\xe3\x3c\xd5\x11\x8e\xb5\x2e\xde\xbc\x71\x5e\x25\x52\x76\x23\x98\x25\x7f\x03\xe9\x63\x98\x85\xff\xd9\x70\x7c\xe3\x63\xf6\xc0\x65\x9a\x2a\x00\xec\xc9\x01\x7e\x49\x24\x58\x85\x32\xcf\x40\x21\xd7\xbd\x88\xa7\x50\x39\xce\x26\xbb\x6d\xe6\x5b\x71\xfe\x87\x6a\xa8\x86\xbc\x73\x1b\x97\x66\x12\x69\xed\x3d\xb1\x37\x8b\x6e\xeb\x08\xdf\x3a\x7e\x71\x9b\x8a\x39\x07\x49\x2c\x59\x38\x68\x09\x0b\xf2\x37\xe7\xf3\xd4\xc4\xde\x51\x3f\x14\xab\x72\x67\x53\xa9\x3e\x63\x15\x4d\x35\xe7\xce\x51\xd9\x76\x14\x93\x98\x73\xe5\xfd\x5a\x79\x2b\x66\x70\xe1\xf7\x5e\xe3\xf6\x68\xda\x3d\x5e\x8c\x61\x16\xc8\x99\x49\x12\x33\xdd\x9f\x71\x0d\xda\x4a\xea\x9e\x5d\xd4\x7d\x62\x9f\xe8\x89\xae\xda\x45\xab\xc6\xdf\x6e\x6f\x15\x4b\xbd\xed\x3c\xda\x71\x0b\x98\x9b\x4b\x0b\x2a\x96\xbf\x68\x4b\x03\xd7\x84\x28\x08\xba\x59\xa6\x92\x2d\xcf\xf0\xa4\xc5\x91\xcc\xe2\x3a\xc3\x73\xad\x44\x28\xae\x6f\x49\x31\x31\x72\xac\x89\xe5\x45\x18\xa5\x82\xba\xb3\x5f\xca\x5b\xaf\xdf\x1d\x60\xa1\xfc\xe0\x97\xf2\x8a\xb0\x57\xe5\xd0\x04\x25\xe0\x48\xa5\x38\x0b\x9e\x84\x3d\xe1\xaa\xef\x9b\x1c\x7d\xe7\xfc\x17\x4e\xbc\xab\x58\xd3\x95\x1b\x7b\x8b\x55\xc6\x55\x18\x8c\xad\x4e\x1a\x65\x13\x0f\xc0\xb1\xda\x4a\xdc\xa6\xe8\x46\xe5\x97\xed\x0a\x87\x54\x7e\xea\x64\x9f\x4d\xbe\x6d\x00\x98\x6a\x15\xb2\x7e\x88\x15\x13\xbc\x4c\x00\x1b\x2a\x6c\x65\x37\x1f\xd8\xd3\x76\x04\xb0\xc7\x14\x42\x19\xb0\x93\xe5\xbe\xf3\xcb\x26\xe8\xa1\x7d\xff\x9f\xf9\x43\xd0\xdf\x6d\x71\x96\x8a\x17\x07\x8c\x0b\xfb\xea\x49\xf6\x9e\x7e\x2d\xc7\x27\xd6\x52\xe2\xf2\x97\x39\xfa\xa8\x28\xe2\x14\x02\x5a\x8b\xc5\x99\x33\xf0\xd4\x59\x59\x0b\x3d\xf8\xc7\x74\x44\x04\x23\x7a\x4e\x0e\xd7\x21\xe3\xc1\x33\xcc\xf0\x04\xc0\xb0\x4f\x20\xe8\x10\xa4\xec\x5c\x83\x32\x27\xd1\xd4\x07\x05\x26\xab\x79\xbc\x4d\x65\xce\xeb\x64\x43\x9f\x46\x02\xb7\x58\xbc\x79\xe4\x4a\xf5\xa1\xbd\xb3\xfd\x6f\xa6\x68\xf4\x3b\xf7\x3f\x0f\xef\xba\xf7\x37\x0f\x77\x17\x05\x6d\xe3\xe2\xea\xe1\xbe\xdf\xbd\xab\x7c\x96\xa7\x01\xff\xfd\xa1\xfb\x50\xf3\xc8\x35\x70\xd5\xf9\xb1\x5b\x28\x3a\xff\xf7\x87\xce\x55\xaf\xff\xeb\xf0\xe6\xe3\xf0\xbe\x7b\xf7\x4b\xef\xa2\x3b\xbc\xbf\xed\x5e\xf4\x3e\xf6\x2e\x3a\xfa\x4b\xff\xdd\xdb\xab\x87\x4f\xbd\xeb\xa1\x8b\xe8\xf6\x1f\x7d\xb9\xb9\xfb\xf9\xe3\xd5\xcd\x97\xa1\xd7\xe5\xcd\xf5\xc7\xde\xa7\xaa\x59\x74\xee\xef\x7b\x9f\xae\x3f\x77\xaf\x9b\x8b\xdb\x57\x53\xa3\xb6\x6e\xb6\x77\xff\x7a\xb6\x2e\x4f\xba\x1b\x2d\xec\x99\xa0\xff\x04\x97\xcb\xad\xd9\xa2\xa7\x27\xee\x2f\x53\x8a\xfe\x54\x73\x6e\xe7\xce\xcb\x99\xde\x80\x65\x3e\xe1\x4c\x16\x50\x78\x22\x5d\x56\x77\x61\xb4\xe7\xa8\x03\x87\x0c\xf4\x9c\x42\xa7\x90\x34\x92\x8d\xd4\x45\x11\xc0\x3e\x4c\xe8\x8c\x42\x40\x01\x3a\x45\xe5\x05\x2f\x36\x68\xe7\x04\x43\xb0\xee\xc6\xb8\xe9\x34\xc8\x72\xc2\x38\xec\x94\x73\xe4\x2e\x16\x62\xac\x20\x06\xd6\x77\xc1\xf0\x8c\x46\xe5\xec\x16\x40\xb6\x45\x39\x8a\x4b\xb9\xc5\xc2\x06\x2b\xb6\x3c\x25\xe8\xe7\xbf\xe5\x83\x02\xc7\x8b\x35\x18\xa4\x4b\x15\x28\xed\x03\x91\x1a\xaa\xae\xda\x9e\x85\x9e\xdc\x31\xb7\x16\x71\x38\xb7\xb6\xd2\x3d\x78\xc9\x52\xe6\x21\xb9\x15\x5c\x66\xfa\x78\x9b\x19\x95\xf6\xf8\x39\xba\x07\x14\x19\x99\x5b\x1c\xf4\x2a\xce\x93\x74\x42\x19\xa2\xb3\x79\x02\x3c\xc6\x98\x21\x46\x64\x8a\x9f\x28\x77\x05\x57\x4c\x5d\x1a\xa0\xa3\x95\x08\xd1\x29\xaa\x3d\x28\xe7\xa8\x13\xc7\xb2\xc8\xe0\x0a\x3b\xc7\x71\xd1\xd3\xe2\xb0\x7d\xf0\x35\xcd\x58\x2d\xdb\x2c\xed\xa3\xfc\xc8\x01\xc5\x76\x8f\x93\xb3\xcc\x0e\x8b\x22\xc3\x16\x52\x8b\xa6\xe0\xd0\x6d\xe5\xe1\x46\x32\x4c\x1f\xcb\x47\xc7\x9a\x57\xc9\x31\x0e\xb1\x68\xbb\x1e\x2d\x74\x51\xdb\x4e\x33\xca\x0e\xe1\xa0\x6d\xd6\x67\x2d\xe0\xf6\x8a\x2e\xdd\x8c\x93\x52\xa9\xbb\xd6\xfd\x15\x4a\xe5\x55\x76\xb6\x53\x27\x55\xb5\x10\x09\x47\x72\x98\xed\xff\x35\xe6\x71\x0b\x9f\xde\x64\x5f\x36\x4a\x9a\x43\x8f\x6e\xeb\xba\xae\x96\xf2\x9f\xad\xfb\xaa\x71\x1f\xee\x08\x39\xab\xbd\x14\x09\xa5\x42\x68\x04\x5e\x4a\x4c\x99\x2d\x20\x45\x32\x37\x9a\x2b\xd8\xae\xcf\x71\x56\x52\x11\x8f\xf8\x53\x41\x27\x9e\x11\x29\x71\x0d\x16\x8c\x67\xc9\xdb\x86\x31\x64\x27\xd4\x7e\xd8\x72\x3f\xb9\x33\xd9\xd7\x5f\x35\xc9\xe8\x77\xbe\x42\xef\x26\xaa\x65\xd8\xd8\x05\x31\xa3\x1b\x93\xca\xa8\xf9\xcb\x49\x1e\x03\xc4\x85\x17\x1a\x55\xe7\xb5\x6a\x69\x0d\x2c\x13\xac\xb2\x2e\x98\xef\x79\x5c\x3f\x74\xc8\x6b\x7d\x63\xb0\x71\xeb\x0e\xc2\x45\xfa\xac\xb1\xeb\x0a\x6e\x5a\xbf\x62\x7b\xc4\x67\x33\x23\x17\x14\x4c\xc0\x27\x08\x9b\x0c\xd2\x5c\x9a\x92\x69\x34\x35\xce\x31\x7d\x65\x9c\x0c\xd8\xb3\xb7\x20\x85\x18\xeb\x8e\xdf\x12\x00\xb5\x7e\xd5\xc7\x8d\x3e\x15\x22\xd7\x41\x64\xa4\x10\x46\xed\x6d\x04\xe3\xc7\xcc\x0b\x9e\xad\xd8\xe0\xde\x7a\x6d\xb1\xd5\x37\xa8\xad\x59\xa2\x6f\x5d\x85\xcd\x6c\x6e\x5e\x61\xcb\x2d\x14\xfc\xb6\x43\xf0\x6a\x6b\x56\x8d\x60\x07\xa5\x35\x5f\x14\x39\x3d\xcb\x84\x35\x89\xd3\xb3\x91\x85\xff\xd0\xd3\x75\xd4\xfe\xa3\x9b\xd1\x1f\x8d\x22\x9c\xd6\xe0\xc5\x78\xad\x65\xe0\xe9\xe8\x54\xcb\xac\x0e\xc7\xc0\xc6\x8f\x48\x74\x6a\x00\x19\xdf\x43\x10\x6b\xe7\xb6\xf7\xfe\x04\xbd\xf7\x13\xf9\xde\x1f\x8d\xe9\x22\x3f\xfe\x96\x6a\xb6\xb8\x27\xe8\x72\x85\x5c\x92\xe2\xa1\x87\x9d\x52\xe2\x03\x76\xc7\x58\x36\x80\xea\xb8\x80\xfe\xb2\xf0\x0d\x78\xf4\xa1\x5c\xa4\x71\x7a\x67\x91\xec\xd6\x6f\x66\x24\x6c\x2a\x2b\x56\x2e\x1e\xb0\xd1\xa2\xec\x19\x3b\xc9\x5c\x63\xad\x79\xc4\xd6\x25\x10\x75\x7b\xcb\x79\xe7\x3b\x8e\xb0\x6e\xbe\x8d\x56\x64\xb2\x77\xb2\x3a\x3d\x39\x0f\xad\x0b\xed\x08\xa9\x09\x55\xb3\x2a\x98\xf9\x1c\x31\x2b\x17\x65\x95\xf4\x75\x6c\xdb\xad\x45\x3c\x7f\xa7\x8a\x22\x36\x95\xa3\x46\xb4\x0f\xbb\x6c\xbf\xbb\x6c\x17\xa9\x2c\xc5\xc1\xad\x7f\x7d\x5f\x18\x29\xd2\x6b\xc6\x99\x7b\xb5\x2a\x93\x31\xf8\x42\x9d\xcc\xd5\xe5\xad\xd7\x74\x94\x7b\x34\x59\xed\x29\xbf\x37\xd1\x16\xc6\x57\xbd\x3c\xd6\xf2\x50\x3b\xca\x56\x97\xe2\xd4\xa4\xad\x2a\x3a\x23\x27\xa6\x9c\x59\x1e\x21\x62\xcf\x2b\x6c\x37\x13\xd8\x35\x25\x54\xb8\x4e\x2c\x78\xe4\x5a\x38\x07\x6b\xea\x02\x75\x7b\x64\x8b\xf0\x9c\xeb\xce\xe7\xee\xe5\xb0\x7b\xdd\xef\xf5\x7f\xad\x00\x06\x2d\x3e\x76\xd8\xa0\xde\x0b\xf7\xbf\xde\xf7\xbb\x9f\x87\x9f\xba\xd7\xdd\xbb\x4e\x7f\x05\x6e\x68\x53\x67\x75\x98\x94\xa9\xac\x52\x1e\xd7\xc1\xa5\x74\x46\xe6\x8a\xde\x97\xd1\x43\xbd\x4e\x28\xa9\x41\x10\x35\x98\x0e\x2c\x26\x02\xc5\xe4\x89\x24\x7c\x9e\x1b\x75\x2b\x09\xe6\x41\x8b\x56\xb4\xdf\x04\x2f\x0a\x6d\x96\x69\x7c\x8e\x4c\x6d\x44\xaf\x3c\x74\xd6\x20\x88\x7c\x58\x10\xf6\x5e\x21\xf2\x75\x9e\xd0\x88\x2a\x2f\xe7\x93\x0b\xeb\xdc\x31\x3e\x57\x08\xe9\x5d\xb1\xb9\x76\x16\xc2\xb3\x73\x8b\x83\x1f\x7e\xb0\x6c\x6b\xc8\x4e\x54\x06\x75\xb7\xb2\x32\xd4\x0e\xcc\x0a\x35\x9e\xf6\x25\x24\xbe\x0d\x46\xb7\x0f\xe3\xc4\x72\x62\x93\xcd\xdb\xac\x41\xe9\xab\x1e\xe4\xea\xdb\xb0\x29\xb8\xa8\x70\xae\x9b\xa3\x8b\xda\xed\xd4\x57\x8e\x11\x2a\x14\xa2\xdd\x01\xa4\x8a\x0d\xf8\x5f\x33\xca\x63\xa9\x10\x10\x33\x81\xba\x18\x09\x32\xe3\x4a\x2b\x60\x26\x8c\xe2\x44\x0b\x55\x14\x27\xf4\x9f\x00\x3e\x26\xc8\x99\x17\x76\xe2\x20\xdb\x72\xe7\x85\x05\x06\x39\x1b\xb0\xcb\xee\xed\x5d\xf7\x42\x33\xa4\x33\xf4\x20\x01\x57\xac\x30\xf5\x4b\xbb\xbd\x8d\x38\xe6\x87\x7f\x50\x26\x15\xc1\x75\x11\x74\x44\x08\x2e\xda\xf3\x87\xac\xbf\x2e\x7c\x57\xbd\xbd\xe1\x59\xc1\x32\xe6\xcc\x0f\xd7\xb5\x55\xc4\xbd\x44\x8b\x9d\x27\xb2\xdd\xe1\xe7\x02\x45\x7c\x5c\x15\x90\x44\x8a\x54\xdf\x23\xb5\x01\x99\xb5\xfd\xfc\x0a\x7d\xde\xc2\xb7\x4d\xf3\xec\x43\x5c\xa2\x54\x39\xcc\xab\x41\x82\xcd\xca\x19\x95\xe6\x59\x2b\x2a\x8a\xd7\xc0\x60\x29\x6d\xfd\x11\x99\x60\x86\x44\xca\x58\x09\xf7\xd7\xb7\xf3\x2d\x47\x1a\xad\x7b\x54\x35\xcd\xf0\x8c\xa7\xcc\xd4\xe3\xd5\xa3\xaa\x18\x8c\x9c\x13\xa6\x56\x0c\xe6\xb5\x10\x76\x4a\x43\x3d\x5c\x90\x9d\x8a\x81\xd6\xe1\xec\x54\x79\xb3\xa0\x54\xf9\x7a\xd7\xb2\x8b\x64\x2c\xb8\xb4\xf4\xa1\xca\xee\xe7\x6a\x2d\x1b\xcb\xc7\xad\xbb\xeb\x63\xf9\xb8\xba\xab\x98\x44\x8f\xeb\x5e\x36\xe5\x74\xd6\xc4\x56\x7a\x5f\x32\xf6\x2d\xf4\x53\x5b\x73\x07\x0a\xfc\x47\x8f\xe8\xa7\xfe\xe7\x2b\x34\xa6\x5a\xee\xd5\xd7\xca\x35\xd6\x32\xf6\x83\x48\x9c\x55\xda\x5a\x76\x53\x91\x64\x77\x2f\x2c\xbc\x13\xa5\x3c\x29\x41\xdf\x68\x78\x42\x9c\xa9\x59\x58\x18\xc5\x52\xcd\x1d\x81\x59\xcc\x67\x66\x1e\x1f\x64\x3a\x1e\xd3\xaf\x67\x0a\x8b\xef\x6b\xe8\x61\x62\x3a\x86\xff\xe0\xa3\xa1\x1e\xd1\x96\x17\x71\x55\x73\xc8\x16\x20\xcf\xc8\x66\x67\x76\x69\xde\xfd\x3f\x7c\x04\x10\x01\x80\x72\xe0\x7c\x83\x36\x4e\xc2\xbe\xe2\x76\x52\x5e\x91\xbb\x80\x5e\x13\x71\x21\x88\x45\x16\x30\x45\x63\xe7\x58\x28\x0a\xd6\x5a\x87\x7e\x53\x28\x7b\x90\x2f\x91\x5f\x22\x7f\x8a\x73\x88\xf1\x11\x21\xe0\x5e\x9a\xd3\x64\x3d\xa5\xf7\xa2\xe0\x19\x2d\x9d\x40\x1b\xae\x6b\x01\x51\xc1\x20\xb3\x52\xc4\xea\x3e\x11\xa6\x76\xa2\x9f\x40\x13\x15\x58\x07\xed\x7c\x1c\xa6\x76\x6b\xef\x32\xbf\xdc\x5c\x1c\xb4\x1f\x53\xa5\x04\x86\x7b\xde\x66\x97\x59\x87\x7e\x5d\x98\xc1\x53\x6b\xcf\x35\xbc\xba\x4c\x97\x15\xf9\x04\x96\xda\x79\x69\xfc\x3c\x16\xd8\xd5\x6c\xd8\x10\xa1\x49\x12\x63\xc5\xf0\x90\x41\xac\x72\x5a\x5e\x73\xd3\xa7\xde\x5b\xa5\x2e\x57\x2e\xf9\x06\x70\x44\x85\x66\x3e\x11\xc8\x83\xdd\x45\xf4\xfe\x3a\x80\x07\x30\x90\x07\x91\x40\xdc\x79\xa3\x15\xcb\xd4\x8f\xd7\x9c\x2f\x93\xec\x70\x0b\x19\xdd\x0c\x46\x0b\x8d\x64\x2e\x48\xa4\xaf\xb2\x73\x74\x9b\x10\x2d\x79\xa5\x5a\xfa\x4a\x93\xc4\x41\xb7\x35\x4b\x87\x6b\xc1\x0d\xee\x7d\x5e\x9e\xee\xd1\x30\x31\x07\x5d\xd8\x3c\x33\x8f\x06\xbb\x87\xa9\xf0\xe8\x0b\x26\x64\x30\x24\x16\xb5\x48\xe0\xf0\x0b\x13\xb5\x0b\xa6\x24\x5c\xb8\xc8\xe8\x3f\x35\xfb\x15\x44\x4e\x79\x6d\x66\xa8\x3f\xdb\xfd\xcc\xc1\x91\x72\x8f\x93\x70\xf7\x61\x5d\x30\x7a\x0b\xb9\xa6\x74\x07\x16\x44\x9c\x36\xbe\xd8\x3c\xf6\xc4\x02\xe9\xda\xbb\xd5\x0e\x0d\x6e\xc9\xdc\xd4\xe6\x83\xda\xe5\xae\x8b\x5c\x99\x59\x18\xdf\x6b\xf6\x79\x6e\x40\xce\xf3\x28\xa8\x92\x79\x39\x41\xa4\xef\xda\xba\x25\xd6\xf3\x1c\xa6\x62\x2d\x1c\x8f\x1c\x8e\x7e\x1d\xce\x6d\x33\x78\xf2\x61\x69\x22\x54\xb3\x4b\x5b\x25\x04\xc4\x68\x1b\xe8\x24\x0b\x10\x7f\x76\xdb\x18\x32\x56\xaa\x78\xf5\x4c\x79\x5b\xb7\x1a\x48\xc9\xb9\x28\xb3\x2f\xef\x5a\x61\x07\x16\x26\x10\x40\xe3\xd6\x07\x8d\xb3\x25\x63\xb2\xbd\x07\x10\x8f\x4a\x00\x5a\x42\xee\x40\x2b\x0b\x0e\xd6\xe8\xbd\x2a\x5d\xac\xb0\x3a\xad\x72\xc3\x0a\x5f\x68\x5e\x72\xb9\xa5\x07\x4e\x4f\x66\x31\x84\x6c\xdb\x6d\x62\x80\x0a\xf3\x37\xde\x03\x68\x93\xc4\xc8\x40\x3e\x18\x48\x6b\x4b\xbb\xcc\x73\x32\xc7\x82\x30\x35\x60\x77\x7a\x14\xe6\x8b\x3c\x12\xc3\x45\x01\xb9\x32\x03\x50\x8c\x78\x8c\xb0\xfd\x0a\x88\x5e\x17\x86\x27\x87\xe6\x25\x50\x4d\xf7\x88\x4c\xf0\xa3\x79\xc7\x00\x45\x58\xa0\x24\x3d\x55\x3a\xce\xd5\x78\x2d\x40\x46\x53\x0a\x38\x0d\x31\x91\xf6\x42\xa2\xca\x02\x71\x64\xe2\x77\x4a\x1c\xb0\x36\x7c\x96\xf1\xaf\x2a\x86\xed\x0c\x05\xcc\x19\xe8\xe4\x80\x79\x7d\x34\xe0\xb0\x1a\x65\x7d\x43\x55\x02\xd6\x99\xc6\x99\xe3\x0b\xfe\x69\x56\x88\x0b\x3a\xa1\xcc\xab\x86\x65\xa7\x37\xc3\x73\x30\xef\x9a\x33\xc8\xc7\xd9\x9d\xd6\xb7\x39\x0e\x67\x30\xe2\xff\xfb\x5f\xff\x7d\x46\xeb\xbc\x1f\x72\x68\x29\x70\x08\x2b\xb9\xde\xb2\xf8\x2b\xef\x41\xaf\xd4\x40\x7a\x78\x3a\xad\x2c\xe4\x6d\xe4\xbf\xda\xcb\x4d\x6f\x1a\xae\xa6\xc6\xdd\x5b\xdc\xee\xe0\x1b\x11\x69\xc3\xd9\x30\x57\xcc\xeb\xd2\x92\x4a\xc8\x4d\xd0\x23\x31\x27\x39\x33\x10\xf8\x95\xe6\x97\xcc\x34\x03\x96\x7f\x22\x0d\x88\x8c\xc1\xed\x35\x3f\xe4\xd4\x69\x49\x98\x26\xde\x9f\x47\x4a\xe4\xee\x70\x2f\x16\xda\xd5\x45\x31\x31\xac\xba\xfd\xd2\x4d\x5b\xe2\xdc\x1e\x80\xe5\x36\x31\xa3\x53\x2c\xf7\x17\x9a\x53\x59\xcf\xcb\x58\xd3\x7d\xe1\x61\x55\x90\x8e\x19\xa4\x49\x91\xd5\x0b\x92\x4a\x22\x0c\xa7\xcb\x30\xc4\xec\x4e\xf0\xe1\x39\x21\x42\x74\x85\xaf\x91\xcc\x30\x5d\x2b\x9b\x41\xbf\x5f\x0d\x1e\x5a\x70\x36\xe0\x09\x11\xc3\x38\x55\x4b\xc7\xa2\x29\xc3\x40\x7f\x74\x99\xaa\xc5\xea\xf6\x65\x82\x97\xeb\x19\x35\x01\xb6\xea\xf7\x6b\x9a\x5d\x2d\x31\x7b\x21\x3e\x45\xa9\xb9\x06\x0e\x95\x94\xe0\x50\x6d\xc4\x6b\xc1\x44\x02\x37\x30\x53\x80\x43\x98\x6b\x52\xf6\x8a\x36\xa0\xed\x30\x72\x34\x4a\x73\x93\x52\x56\x06\x23\x3e\x1b\xb0\x8f\xa6\x8e\x0c\x68\x79\x66\x00\x11\xa4\x1b\x91\xaf\x73\x2e\x49\x21\xff\xad\xa2\xb4\x85\x4d\x7c\xb5\xc3\xa8\x16\xd6\xf3\x8f\xb6\x97\xd5\x5f\x1d\xd8\x76\x79\xc1\x97\xa7\x5c\xbd\x03\xb7\x12\x07\x23\x3a\xa7\x7a\xef\x0c\x2b\x4f\xda\xfe\xca\x2b\xe7\x31\x5d\x00\x1e\xa6\x92\xc5\x09\xca\xa6\x57\xda\x10\x09\x79\x22\x60\x4e\x87\x31\xfa\x05\x4c\x8a\x76\xbd\x1a\x76\xb2\xea\x00\xe5\xc9\xa7\xc0\x16\x50\x5c\x1e\x41\x31\x45\xaf\x6a\x2f\x16\x93\x8f\xb6\xce\x93\xab\x0a\x4c\x59\x43\x3c\xef\xf8\x85\x5c\x16\x44\x21\xf2\x55\x11\x5b\xea\xb5\xef\x32\x19\x97\x93\x1f\x50\x75\x32\x56\xbd\xec\xb8\xf7\xa2\xdb\x1d\x97\xf8\xee\x52\x35\x63\x77\xe5\xdb\xd4\xc5\x29\x66\xb1\xcd\xc7\xb5\x4a\x86\x16\xb6\x60\x76\xc6\xe8\x96\x65\x2a\xd8\xac\x52\x0f\x01\xdf\xb4\x69\xa0\xfa\xe1\x22\x73\x0a\xa3\x56\x59\x20\xbc\x82\x0b\x2d\xb9\xa7\x4c\xd1\x44\x6f\x0e\x3b\x06\x89\xc6\x10\x19\x67\xd1\x1d\x21\xb2\xbd\x0e\x40\x90\x4a\x49\xd9\x64\x68\x29\xe9\x52\x4b\xdb\x5d\x0c\xc5\x3d\xf5\xd9\x34\x65\x7e\xfc\xd1\x35\xd4\x6c\x54\x37\xdb\x1a\xc0\xdd\x5c\x52\x2b\x68\x1c\x8c\xbb\xc9\x58\x54\x3e\x97\x0b\x3b\xa4\xb1\x21\x05\x35\x15\xc5\x61\xa2\xeb\xd8\xdd\x41\xa6\x5b\x06\xbf\xc8\xaf\x10\x69\x13\x55\x4d\xfa\x19\x44\xea\xab\x9a\x4c\x5c\x59\x9b\x81\xdb\x63\x99\x88\x66\xeb\x99\x65\x38\x03\xa5\x64\x5e\xec\xba\xb3\xe9\x08\x38\x49\x46\x38\x7a\xcc\xb4\xb0\xcc\x16\xc1\x85\xab\x07\xa1\xe5\x4a\x28\x78\x67\x36\x97\x1e\x68\x04\xd2\x8d\xef\x2d\x34\xf0\x47\x76\xd8\x79\xe7\x86\x6a\x16\x57\xce\xe0\x5d\x99\xd1\x9b\xdc\x86\x98\xcc\x13\xbe\x98\xd5\xdc\x67\xe5\x04\xc6\x6d\x22\x75\xea\xf2\x27\x77\x7a\x95\x95\x98\xde\xda\x97\xd9\x52\x36\xd4\x0e\xc0\xb8\xd6\xe0\x92\x9f\x12\x3e\x02\x93\xaa\x35\x3f\xb8\x0c\x1f\x2f\xd5\xa3\x7c\x9e\xd7\xcd\x3b\x2a\x9f\x48\x2a\xe7\x89\x56\x66\xea\x7b\x30\x39\x27\xfb\x5d\x37\x83\x90\xb0\xda\x3a\xd8\x3e\x5a\xbb\xf2\xf3\x7d\xc0\x3e\x5f\x39\x49\xc0\xbc\x6b\xf8\x57\xc9\xca\x66\x52\x0d\xcf\x8c\x93\x5a\xf1\x01\x53\x78\xe2\x16\xd7\x0a\x97\xfc\x99\x11\x21\xa7\x74\x5e\x28\x84\xb9\x75\x78\xb8\xdd\xd1\xf6\xff\x4c\x30\x74\x65\x9b\x07\x98\xba\xd5\xe7\xf3\x53\x83\xce\xa2\x77\xa7\x9c\xe3\x28\xb7\xc9\x46\x09\x96\x92\x8e\x17\x1e\xa8\x4a\x16\xe7\x0b\xa9\x6b\x45\x23\x86\x57\xf9\xae\x8a\xcd\x19\xea\xec\x06\x55\x60\xfb\x8c\xca\x87\xe2\xe1\xa7\xb1\x0f\xba\xa7\x6f\xb3\x65\xe8\x1d\x27\x27\x58\xaa\xd7\x82\x07\x1b\xf8\x84\xcd\x50\x00\xda\xe2\x35\xed\x79\x27\x55\xa4\x61\x2e\x6d\xa4\x1c\x2d\x2c\x93\xa3\x2d\xcd\xac\x0e\x97\x21\xad\xf8\xf0\x45\xaa\x90\xc3\x0a\x3b\x4f\xeb\x8c\xce\x24\xae\xcf\x65\x86\xd2\x02\x60\x16\xf9\xc7\x27\x48\x6e\x05\xca\xd6\x66\x53\x5e\x92\x84\xec\x24\xd8\x7c\x83\x1d\x5a\x8e\xe4\xf0\xf6\x66\xe3\xbe\xcc\xcb\x52\xac\xb6\xab\x6c\x10\x03\x5f\x83\x91\x54\x3d\xf4\x2f\x66\xa0\x36\x0c\xbe\x6a\x15\xc1\x26\x0a\x54\x5e\x3d\xda\x43\xda\xe5\x5e\x68\x89\x19\xbe\xdd\xef\xf9\x1c\x0b\x9b\x3a\x9f\x71\x26\x27\x1e\xe2\x3e\x7f\xe5\x50\xf5\xa5\x71\x7d\x22\x6d\xc2\x6a\x56\x9e\xbe\x8d\x78\xef\xf2\x0d\xd5\x6e\x5f\x58\xc7\xb5\xe2\x68\x42\x00\x89\x87\xb2\x98\x3e\xd1\x38\xc5\xc9\x51\xed\x89\x9d\x25\xda\xec\x88\xfa\xd5\x1c\xa6\x95\xa5\x27\x8f\x07\x25\x4a\xba\xfb\x68\x09\xf3\xd3\x2e\xce\x01\x2e\xc1\x61\x1c\x4b\xa3\x30\xbc\x79\x89\x6d\x6b\x68\x0c\x3b\x32\x0b\x10\x11\x44\xc9\xc2\x25\x9b\x8f\x7d\xf7\xd2\xa4\xa1\x71\x6c\xbf\xc8\xe0\x20\x0a\x30\x6c\xb8\x80\x66\x69\xd6\xe8\xf5\xb9\x6e\xf9\x68\xbd\x75\xb9\x73\xfd\x33\x56\x1e\x55\x7e\xba\x82\x30\x7c\x08\xe7\xb4\xbd\x3c\xec\x00\x68\x0f\x50\xf8\xa9\x3b\x86\x87\x79\xff\x1e\x80\x70\xbc\x24\x12\xec\x4e\x44\x3e\xa2\x6d\x72\x10\x92\xf2\xd2\x52\xbc\x94\xbc\x7c\xea\xb0\xbd\x72\xa4\xac\xc3\x5d\xa2\xc3\x38\xc9\x77\xd6\xfd\xb8\xbf\x0b\x7e\xf5\x7e\xd9\xc9\xfe\x00\x98\x5b\x0c\xf9\xf8\xa9\x2d\xf7\x03\x87\xd7\x8b\xe1\x5c\xf2\x79\xad\x88\x8e\xb5\xc3\x6b\x15\x17\xbb\x44\xce\x7d\x2c\xaf\x4d\xbe\x6c\xbd\xb8\xfb\xdc\x6a\xeb\x8e\x65\x17\x3a\xda\x9e\xbd\x87\x76\x37\x7a\x1f\x84\x20\xf5\x76\xb7\x68\x05\xa4\x93\x5b\xb2\x5d\x1e\xb2\xaa\x1a\x8d\xdb\xc3\x47\xb8\xdc\xd2\xe1\x5c\x90\x31\xfd\xba\x91\x2a\x70\x0b\x9f\x5a\xf5\x5a\x93\xb9\x54\xf5\x11\xdc\x82\x50\x25\xd2\x0b\xa4\xb5\x94\xb6\x95\xe1\x06\x2c\xcf\xc8\xb5\xe9\xb8\x5a\x18\xe6\xa2\xf0\xd3\xa6\xd0\xa7\xbb\xaf\x50\x69\xd6\x75\xaa\xd4\x5c\x9e\x7f\xf8\x30\xa1\x6a\x9a\x8e\xce\x22\x3e\x33\xf9\x1f\x5c\x4c\xcc\x1f\x1f\xa8\x94\x29\x91\x1f\xfe\xfc\xa7\x3f\xe5\x4b\x3c\xc2\xd1\xe3\xc4\xc0\x39\x2d\xfb\x3b\x8b\x4b\x4e\xb0\xdc\x2e\xa2\xcc\xa5\x4e\xee\x39\x85\xde\xeb\xc6\x25\x2d\xeb\x6f\xa4\xc2\xb3\xb9\x1f\x82\x6c\x6a\x3c\x4a\x85\xf3\xca\x32\x90\x0f\xab\xa7\x89\xa6\x78\x3e\x27\xac\xde\xec\x62\x12\x9c\xb7\x60\x3d\x2e\x45\xda\x8e\x90\x7c\x9d\x27\x98\x15\x61\x3f\xa0\x4c\x9a\x20\x11\x61\xca\x42\x52\xe4\xb5\xe9\x61\x37\x1a\xe8\x29\xc3\xff\xd7\x4b\x81\x85\x39\x52\x99\xd7\x3f\x74\xc3\xb1\xb5\x88\x5d\x85\x5a\xec\x91\xae\x5c\xff\x39\xa7\x1d\x71\x54\x6b\x4a\x8e\xbd\xb7\xb5\xde\xb6\xd9\x41\x91\xe0\x6c\x48\xbe\x6a\x26\x27\x37\x05\x8a\x7b\x90\x44\xa2\xce\x97\x7b\x24\x17\x4c\xe1\xaf\xe7\xe8\x33\x65\x20\xc0\xfe\xc4\x53\x21\xd1\x25\x5e\x9c\xf2\xf1\xe9\x8c\x33\x35\x45\x9f\xe1\x7f\xed\x4f\xcf\x84\x3c\xa2\x5f\x09\x16\x96\x3f\xd8\xfa\x91\xae\x84\x1d\x6c\x21\x91\x32\x89\xc8\x93\x3e\xa1\x7f\xfa\x5f\x68\x66\x5a\x3e\x47\x3f\x7c\xf8\xd3\xff\x42\x7f\x80\xff\xfe\x3f\xe8\x0f\x35\x96\x86\xf5\xa0\xe6\xa0\xcc\xf8\x5d\x6d\x18\x01\x50\x4a\x2e\x93\x7c\x55\xb3\x17\x82\xe7\x2b\x55\xd9\xf2\x23\x8d\x1e\xf9\x78\x3c\xd4\x1b\xc3\x24\x90\x0e\xf1\x56\x66\x07\x1f\x35\x98\xda\x42\xf1\xa6\xec\x64\x5e\xf0\xc9\x76\x6a\x90\x46\x1c\xbb\x96\x69\x6e\x9e\x80\xe0\xb5\x42\xe9\x71\x2a\xe1\x2b\x12\x6b\xae\xba\xce\xe9\x70\xd6\x45\x07\x3a\xe0\x2c\x48\x3e\x32\x8f\x13\x88\x0b\x01\xa7\x7e\xf4\xb4\x09\x30\xb3\x84\xac\x3c\x0e\x4b\x61\xdd\x6f\x26\x56\x17\xa6\xf6\x5a\x71\xba\x72\xa9\xf3\xd5\x21\xba\xf7\x5c\x6c\xa5\x6f\x3d\x92\xda\x14\x9a\x15\xc5\xcd\x5c\xc1\x6d\xec\x1b\x35\x14\x47\x92\x8b\x0c\xbd\xdb\xd8\x45\x6c\x09\xd4\xd5\x56\x54\x2a\x4c\x50\x63\xbb\x43\xaf\xa7\x7e\x99\x7d\xb2\x6a\x98\x10\xe1\xe8\xde\xce\x8b\x3b\xc2\x68\xb5\x88\xa4\x59\x62\xc5\x88\x2b\x40\x36\x57\x2d\xe8\x7d\x86\xab\x02\x8d\x43\xb8\x2d\xe4\x0d\x31\x27\xd9\x5a\xe0\x8a\xea\xf5\x4c\x45\x44\x2e\xf8\x76\xe1\xd6\x09\x65\x4b\x79\x1a\xb5\xc1\x6d\xf5\x32\xf9\x95\xad\x10\xe7\x70\xa8\x79\x9c\x2b\x0b\xc6\x2d\x61\x6b\xaf\x78\x00\xb8\xc5\xd9\x00\x90\xe2\x2e\x30\x56\x97\x2a\x82\x6c\xc1\xb5\x8d\xe1\x3a\x67\x78\xae\xa0\x4c\xa9\x8e\x8c\xc0\x9a\x17\x36\xc4\x4c\x42\x38\xd9\xd6\xe3\xf0\x6a\x23\xe5\x31\x6a\x85\x2a\xc5\x30\x12\xc8\xb7\xdc\x10\x23\xd7\x94\x29\x3b\x41\x02\x43\x30\xb0\x9a\xea\xf6\x24\x11\xa7\x63\x1c\x51\x36\x39\xf1\xe0\x51\x01\xaa\xc4\xbf\x0e\xaa\x36\x69\x1f\xcb\xc7\xdd\x06\xb8\x6e\x5d\x6d\x96\xc6\x79\xc5\x43\x0b\x68\x64\x1c\x2b\x74\x09\x1b\x52\x61\xf9\x58\x87\xe8\xb5\x04\x27\xd8\x30\xba\x8c\x14\x0e\x84\xb0\x69\x7c\x0e\xfa\x80\xf8\xfa\x14\x54\x2a\x71\xf5\xcf\x2d\xb8\xa8\xcb\x34\xc5\x19\xfa\x4f\x19\x55\xb7\x61\xfc\x72\xca\x85\x1a\x6e\x88\x47\x5c\x76\xa9\x30\x72\x9a\x00\x90\x10\x7f\x22\xe2\x89\x92\xe7\x22\xac\xef\x3a\x7b\xd1\x18\xcd\xbc\x78\x4a\xc0\x7d\x9d\xcd\x39\xa4\x6e\x8d\xd1\x0c\xb3\x85\x61\x94\x9a\xb9\x60\xf9\x28\xb3\xaa\xcb\x48\xce\x70\x92\x9c\x20\x41\x52\x69\xaa\x91\x4b\x92\x8c\x4f\x5d\x01\x98\x18\x25\x7c\x42\x23\x9c\xa0\x51\xc2\xa3\x47\x69\x32\x2b\xd9\xc4\x30\xa9\xb9\xe0\x11\x91\xd2\x93\xac\x72\x14\x05\x9b\xdb\x0a\x25\x97\x15\x11\x33\xca\xa8\x54\x34\x72\x22\x53\x0e\x86\x62\x0a\xff\x47\x18\x4c\xc2\x90\x29\x0c\xc3\xd5\x92\x1e\x31\xa0\xb0\x29\xb3\xa5\xc2\xe0\xba\xb6\x58\x8f\x2e\x39\xa1\xee\x00\xed\x00\xba\xd2\xed\x90\xa1\x2a\x1e\xc8\x15\x47\xea\xc2\x7e\x06\xc7\xb8\x69\x0b\xdc\x15\x4f\x54\xb6\x21\xb3\x93\x56\x80\xd3\x82\x5c\x86\x2c\xf5\xa2\x20\xb9\x64\x19\x09\x07\x86\xa4\x07\x43\xae\xc1\xcf\x5b\xb5\xa7\x35\x15\x41\xe4\x81\xea\x74\x65\xaf\x3d\x65\x51\x92\xc6\x59\x59\x55\x2d\x02\x3c\xe9\x4d\xe2\xc8\xa3\x69\xaf\x05\x85\x13\x84\x25\x7a\x26\x49\xa2\xff\xdf\x64\x5e\x9c\x66\xe5\x42\x34\x4b\x36\x25\x5d\xa0\x13\xc7\xa5\xeb\x76\xd4\xc1\xa1\xa2\xde\x62\x35\x35\x58\x13\x33\xae\x4c\x45\x5b\x83\x8a\xea\xec\x5b\x06\x46\x73\x94\xf0\x11\x9c\x74\x00\x4c\x75\xf9\xd5\x5e\x3a\x67\x1a\x45\x84\xc4\x24\x36\xf5\x39\x33\x30\x4f\x7b\x44\xbf\xaf\x86\xef\x2c\x50\xe4\x00\xc0\x52\xcb\x86\xb5\x5a\xc8\xd4\x62\x75\xc3\x33\x74\x5b\x02\x04\xf2\x28\x33\xc6\x65\x78\xb8\x93\xa5\x25\x7c\x1d\x80\xd5\xd2\x24\xf6\xb7\x42\x6b\x02\xac\x16\xfa\xdc\x01\xc0\x6a\x69\x9e\x35\x39\x23\x7c\xb2\xd7\x5c\x77\x3d\xa9\x2b\xde\x3e\x01\xd1\x00\xd3\x99\xbb\xb3\xb0\x05\xdd\x81\x5c\x54\x6d\xc4\xc3\x02\x8f\x2d\xd5\x00\x7d\x5d\xf0\xd8\xd2\x60\x0e\x19\x3c\xb6\x34\xd4\xc3\x05\x8f\xad\x18\x68\x0b\xf0\x58\xe3\xdc\x1f\xea\x4d\xdd\x8e\x29\x40\x42\xd5\x28\x1d\xdf\x03\xc4\x40\xe3\x18\x2f\x4c\xe0\x80\xb9\xc6\xdc\x1d\x6d\xe3\x8b\x60\xb4\x36\xf7\xb6\x2e\x1c\xab\xe4\x84\x58\x77\xef\x65\xde\x37\x03\x3a\xb2\xae\xd9\xfd\xc4\xb7\x76\x83\x1d\x32\xc2\x73\x8b\x65\x50\x57\xe2\xe8\x70\xb2\xb6\x37\xc3\xe5\x05\xec\xcb\x02\xcb\x6f\x85\x5c\xf7\xb9\x54\x2d\x64\xca\x9f\x6d\xc5\x2e\xd8\x86\x66\x53\xd6\x6e\x41\xe8\x74\x68\x95\xb6\x3a\xca\x51\xa6\xc8\xa4\xac\xd3\xe6\x87\x86\x32\xf5\x97\x3f\xaf\xe4\x44\x06\xda\xd3\xa9\x87\x5e\xcd\x8e\xcc\xd9\x61\x9f\x91\x18\x45\x53\xad\x15\x49\xad\xbe\xe8\xe9\x98\x9b\x55\xa2\x19\xa6\x4e\x91\x4a\xa5\x71\x2d\x51\x39\x60\x05\x2c\xdc\x33\xf4\x11\xca\x20\xe3\xd9\x5c\xeb\x5f\xd9\xfc\xa8\xde\x49\x83\xf4\x87\x1f\xfe\x42\xd0\x0f\x68\x46\x30\x2b\xe8\xb0\xa0\x36\xe9\xab\x0f\xb0\x23\xd5\x94\x0c\x58\xe5\x52\xa0\xee\x57\x53\xdb\xcc\xc5\x1b\xf6\xd8\x98\x3b\x9d\x18\xca\x7b\xe2\x68\x8a\x64\x3a\x32\xf5\xa9\x3d\x1b\x86\x13\xa4\xaf\xf8\x04\x1c\xd5\x70\x23\xbb\x41\x37\x9d\xc2\xfd\xc6\x00\x58\x77\x63\xdb\xdb\xb8\x03\xf7\xc8\xa9\x24\x05\x4c\xb1\x0a\xa7\x99\xe1\x7c\xfe\xc1\x97\x06\x6f\xe8\xc4\xf8\x10\xb4\x7e\x86\xad\x65\x5f\xcb\xd2\x10\x4e\x0c\x5e\xb2\x34\xc1\xc2\x1e\xfd\x01\xd3\x8a\x86\x20\x4f\x94\xa7\x32\x59\xa0\x98\x33\x72\x02\x3b\x21\x8d\xa6\xc6\xb1\xaa\x75\x16\x6c\x0b\xa5\x3c\x51\x99\x6a\x85\x16\xda\x72\x75\x59\xa4\xc2\x06\x0b\x6d\x4a\xa1\x1f\xad\x7e\x13\xf8\x4a\x79\xf9\x91\xa8\x9d\x16\xe5\xc3\x15\x97\x78\x7e\x4b\xb8\xe2\xc2\xae\x0a\x70\xc5\x19\x5c\xf1\x32\x5d\x0e\x11\xae\xb8\xb4\xe6\xed\xe0\x8a\xab\x96\x7c\x03\xb8\xe2\x42\x33\x6f\x06\xae\xb8\x44\xd1\x37\x03\x57\x5c\x9a\x57\x80\x2b\x7e\x7b\x70\xc5\x5b\x02\xf2\x56\xf3\x62\x83\xeb\xa5\x28\x5b\xac\xbd\xc9\xde\x4b\xd4\xbb\xd1\x1b\x2c\x7a\x2c\x06\xb5\x65\xd7\xd5\xf6\x20\xc0\xd5\x4c\x68\x3d\x10\xe0\x4a\x55\xbd\x9e\xd5\x6d\x0b\x2c\x06\x8a\xc1\x0b\x83\x00\x17\x26\x10\xe2\x2b\xd7\x8f\xaf\xac\xdc\x7c\xb6\x6f\x3d\x3c\x17\x74\x59\xbe\x90\x5b\xc2\x00\x17\xd6\xa7\x55\x24\x26\x88\xee\x3b\xd8\x89\xfb\x95\xe6\xfb\x85\x43\xbe\x52\x96\xf7\xa9\x28\x2d\x20\xb9\x96\xf0\x1c\x4a\xa1\x51\xc2\x7d\xff\x7f\xd8\xb9\x1b\x44\x06\x97\xc8\x9b\xf9\x55\xcc\x5e\x6c\xb1\x55\x5b\xef\x50\xa7\x95\xee\x26\x51\xd8\x25\x6f\xae\xe9\x62\x76\x83\xb8\x9f\x93\xa8\xc6\xc6\x4c\x67\x74\x57\xcd\xae\xba\xc8\x32\x0c\x36\x50\xc8\x97\xf2\x52\xf5\xf5\x64\x86\x63\x64\xfc\x52\x3a\x30\xa0\xa4\x98\x2f\x27\x54\x2a\x51\x1b\xdb\xb4\x34\xc2\x6d\x5c\xa5\xf3\xb4\x75\x40\x8c\x47\xd5\xc9\x66\x9f\xcd\xc8\x8c\x8b\x55\x81\x55\x95\x5f\xda\x12\x4b\x9b\x7c\x4a\xe6\x53\x32\xd3\x92\xcc\x70\xdd\x46\xda\xae\x77\x96\xb4\x6c\x73\xd7\x4c\xa0\x63\x61\x13\x78\x8e\x50\xfd\x6e\x6c\x90\x50\x5b\x2f\xf7\xb6\xcb\x6c\xb1\x5a\xd7\x74\x08\x39\x10\xef\x66\x83\x9b\x7d\xa9\xe0\xee\x86\xfd\x5d\x19\xd3\x91\x85\xd4\xac\x8e\xda\x68\x88\xd7\x68\xc2\x3b\xcb\xbf\xb2\x05\xc8\xd7\x70\xe5\x17\xbd\xf3\x9a\x13\xfa\xd5\xa7\xd7\x0f\xf0\xa8\x41\xeb\x5d\x26\x0f\x44\xe6\x48\x22\x4e\x7d\xcd\xa0\x30\x98\x65\x7a\x15\x76\x89\xd3\x28\xb7\xd8\x24\xa9\xa8\x8d\x32\x6d\x63\xd0\x8e\x54\x8a\x13\xd0\x24\xfc\xaa\xa9\xe5\x45\x1d\x2d\x2a\xd2\x1e\xdb\x79\x4c\x28\x53\xff\xf1\xd7\xb5\x56\x53\xab\x56\x96\x6e\x50\xe9\x0d\x47\x11\x91\xc6\xc6\x6e\xa3\x90\xf1\x88\x3f\x41\x91\xb7\x6d\x56\x55\x1f\x65\x3d\x6f\xcd\xe0\x33\x08\xec\x38\xdf\xea\x46\x5c\x98\x0a\x9e\x4e\xa6\xce\x86\xa4\xcf\x8c\x9e\x5a\xd5\x5a\xfe\xb2\x64\x23\x5f\x7b\x2d\x7f\x4c\x69\xb2\x99\x85\xee\xbe\x50\xfe\xee\x53\xaf\x8f\xe4\x34\x3b\xad\x23\x68\xb6\x72\x61\x97\x07\xdd\xbe\x4f\xfb\x6d\xe6\xaf\x81\x6e\x4e\x1c\xec\xeb\x98\x27\x09\x78\x1a\x24\x99\x3d\x11\x51\xdd\x3d\x4c\xb8\x4f\xd7\x43\x6c\xcc\x06\x00\x5f\xe7\x89\x11\xad\xe4\xaf\x5b\x23\x1a\x4a\xe4\x46\x5f\x0e\x5a\x30\xa1\x6a\x9c\x11\x56\x65\x63\xfb\xb2\x5c\x79\xe8\xc8\x02\x06\x5d\xf4\xd8\xce\x82\x06\x1d\x49\x5e\x38\x70\x70\xc5\x3c\x0e\x35\x78\xb0\xc4\xec\xb2\x58\xbe\xfc\x9a\x71\x81\x43\x46\xf1\xe9\x68\x12\x0f\x58\xa7\x90\x4f\xe1\x2a\xb4\x8f\x16\x79\x40\xb6\xd1\x21\x7c\x66\x06\xf5\x5d\xac\x61\x05\xdc\x68\xfa\x2f\xd0\x74\x0c\x68\xb2\x09\x29\x74\x61\x83\x10\x4d\x4e\xe2\x53\x1c\x2d\xa2\x84\x46\x9e\xce\x3c\x11\x78\x3e\xad\xe2\x78\x6e\xe5\x03\xea\xd0\x6b\xa1\x0e\xd5\x15\x42\x5b\x27\x6e\xdb\xed\x2b\x86\x67\x24\xa0\x21\x1d\x22\x1a\xd2\x49\x86\xb7\xc1\xf2\x92\x72\xaf\x08\xe3\xb0\x7c\xee\x03\x24\xd2\x2b\x40\x22\x6d\x72\xf8\x73\xbc\xa3\xc2\xb1\x0f\x30\x4d\x6d\x88\xf7\xfa\x30\x4d\x99\x10\x70\x50\xc8\x3b\xf5\xfc\xe0\x95\x11\x5d\x96\x07\xf6\x9a\xb0\x4c\x15\xe2\xd2\x3a\x72\x63\x13\x2e\x53\xd3\xbe\x68\x45\x97\xd7\x45\x49\x5a\x8f\x32\x6b\x01\x20\x55\xde\x9d\x07\x02\x87\x54\xbf\x0c\x07\x72\x6e\x76\x99\xd5\xb3\x5e\xcd\x5e\x3f\xb3\x67\x1d\x05\x73\xbd\x24\x9f\x6c\x3f\x1c\x57\xa2\x4f\x5e\xdc\x70\xb3\x64\x9f\x8e\xf3\xc1\x13\x81\xa6\x3c\x89\x1d\x08\x47\x46\xad\xac\x83\x2c\x13\x22\x23\x90\x5b\x8c\xfb\x39\x89\x8c\xb6\x99\x17\xe2\x6b\x4a\xe9\xc9\x16\x11\x86\xbb\x03\x46\xb3\x0b\x2b\x4a\xc6\x49\x36\xb1\x9f\xac\x94\x2e\x64\xd1\xfc\xdf\x30\xc6\x02\x85\xc0\x6b\x50\x3d\xcc\x95\x76\xef\x15\x83\x6b\x12\x3d\x3c\xe3\xa8\xa8\x2a\xb1\x6b\xf6\x19\x3c\x7d\xa2\xce\x10\x83\xfd\x1e\x1b\xbd\x94\x6e\x76\xad\x3c\x95\xe5\xcd\xb2\x41\x30\xdc\x52\xc5\xc4\xed\xc1\x91\x66\xf8\xeb\x70\x8e\x05\x4e\x12\x92\x50\x39\xdb\x5b\x30\xf4\x45\xd1\x5d\xad\xcf\xaa\xe0\xc6\x44\xc6\xd2\xd9\xc8\x6c\x45\x37\x10\x5b\x64\x53\x71\x24\x52\xe6\x43\xbb\x65\x0b\x93\x15\xf1\x4c\xe1\x5e\x00\xab\x5a\x34\x85\x6a\xc9\x63\x4c\x05\x23\xb2\xb6\x36\x2d\x89\x52\x41\xd5\x62\x68\x4b\xfd\xb6\x3f\x70\xf7\xf6\xcb\x0b\xfb\x61\xb3\x87\xdf\xa1\x1a\xb8\xfe\xb2\xd2\xc2\x73\x22\xa0\x3c\x97\x2b\x34\xe5\x95\x33\xb6\xa8\x15\x24\xab\xf1\x05\xe1\xdf\x4b\xd7\x76\x5d\xe0\x34\x7e\x1e\x7a\x19\x65\xc3\xa8\xbc\x39\x56\x1d\xd6\x2a\xdc\xad\xa6\x49\xee\x19\x79\xaa\xc6\x8b\xbe\x87\xea\x3e\x36\x6d\xc4\x34\xad\x07\xec\xb9\xc2\xc1\x5e\x9b\x2f\x8c\x97\xf2\x5f\x51\xec\xc6\x1b\xa7\xc5\x3a\xaa\x0a\xbe\x6a\x18\x6c\xc7\xfb\xaa\xc5\x88\xbd\x4e\x76\x34\x6c\x7d\xd0\x85\x48\xe7\x8a\x8e\x96\xa1\x7d\x1c\x37\xd8\x41\xe9\xde\x4e\x02\x69\xe6\xce\xcd\x52\xe8\xd6\xd4\xf3\x2d\x70\x62\x3b\x3b\x2d\xff\x5b\x1c\x35\x87\x90\x64\x10\xa6\xfc\x3c\xc6\x9b\x19\x55\xca\x25\x4a\x18\x03\xbc\xde\x9d\x45\xdb\xf4\x7b\x17\xee\x82\xa1\xc2\xb2\x31\x51\x9d\x0d\x58\x47\xa2\x67\x82\x18\xb1\x10\x1a\x15\xb5\x93\x33\xab\x3e\xd4\x5c\x1b\x11\xdd\x53\x16\x9b\xa3\x85\x07\xaa\x64\x56\xf6\xcf\xf4\x31\xc6\x89\x24\x27\xba\x61\xa8\x16\xac\x38\x04\xbf\x62\xf4\x2c\xf0\x7c\x4e\xc4\x80\xd9\x2c\x16\x70\x38\x71\x9e\x98\xf6\xeb\x42\x7c\x2d\x0d\xc8\x30\xc2\xd1\xf4\x85\xd6\x08\x43\x32\x52\x34\x25\xb1\xcb\x97\x2e\x2e\x8f\x9b\xb7\x31\xd8\xaf\xb1\x58\xbd\xb1\x2b\x5b\x77\x62\x3b\x49\x22\xcd\x51\xb2\xf2\xee\x73\x22\xf4\xa8\xf5\x1e\x7e\x22\x0c\xd1\xb1\x1b\x87\x8d\x5d\x42\xcf\xe0\x99\xd3\x5b\xff\x09\xd3\xc4\x00\x10\xb8\xae\x9d\x10\x68\xdc\x0f\x03\x66\xdc\xfd\x2c\x2a\x64\xe8\x52\x46\xe5\x54\x73\xea\x14\x7c\xb2\xa0\x66\xd4\x25\x0e\xb1\xa7\x75\x4e\x73\x57\xbf\xde\xcc\x41\x9f\xa8\xe0\x6c\x06\x49\x42\x16\x97\xca\x91\x4f\x12\x95\x1d\x8f\xca\x14\xcf\x95\x12\x71\x1c\xcb\xa2\xf1\xd5\xa8\x95\xf4\x9f\x05\xb3\xcb\x69\x21\x2b\x32\xf2\x60\x95\x20\x88\xd5\x55\xf4\x6b\x92\x7f\x43\x6a\xc7\x72\x6a\x47\x35\x6d\x0e\x31\xbd\x23\x3b\xc4\xeb\xa6\x78\xd4\x2d\xff\x2e\x24\xdb\x1d\xa6\x7a\xbc\x72\x4e\xc4\x7e\xd2\x21\x5e\x37\x7f\x65\x1f\xa9\x2b\x21\xc1\xe3\x15\x13\x3c\x5a\x5b\x6a\x8b\xb1\xe9\xf5\xc7\x76\xad\xe4\x88\x15\x60\x56\x55\xbd\x7c\x26\x4a\xd0\x48\xee\x82\x3f\xc8\x39\x6e\x19\xd5\x07\x5a\xe0\x7c\x85\xd4\xa4\x5f\xc8\x9c\xa0\x10\x27\x97\x55\xb8\x1c\x09\x82\x1f\x63\xfe\xbc\x64\xab\x93\x3e\x9a\xc8\x67\xae\xc5\x1e\x41\x22\x2a\x49\x21\x92\x87\x4a\xc4\x88\xb4\xc6\x4e\x3c\x60\x53\x4a\x04\x16\xd1\x14\xb2\x3b\xf3\x85\x31\x59\xc2\x06\xd0\xc9\xc4\x72\xf8\xde\xae\x35\x16\xbd\x05\xdd\xcb\x16\xa6\x0c\x9f\xcf\xae\xb9\x1e\xc9\xcc\x7c\x92\x09\x33\x56\xca\xf0\x4d\x72\xad\x96\x7f\xdb\x44\x84\x8c\xd8\x7b\x4d\x46\xc8\x82\xa9\xbc\x2f\x5a\x26\x24\xe4\xbb\x21\x24\x25\xec\x29\x29\xa1\x82\xc4\xeb\x25\x26\x6c\x64\xf2\x7b\xf9\x98\x69\xd7\xf3\x4b\xc4\x4d\xaf\x0a\x5a\x4b\x47\xc3\xbd\x1f\xbd\xca\x39\xb7\x3d\x81\x5f\xb2\x4d\x61\x24\x62\xa1\xf7\xd9\x88\xc4\x31\x70\x5a\xc5\x6d\x85\xf6\x7c\xef\x38\xf3\x80\xbe\x7b\xb1\xd4\x9b\x1d\x27\x9c\x4d\x24\x8d\x0d\xd8\xcc\x1c\x43\xad\x62\xdf\x78\x01\xe0\x0a\xb0\xbe\x49\x42\x84\xf3\x4a\x08\xf4\x9d\xa4\xcc\xa2\x49\x66\xbf\xc5\x9c\x48\xf6\x5e\x19\x63\x01\x66\x0b\xf4\xc8\xf8\x73\x42\xe2\x09\xac\x50\x79\x30\xa7\x88\x92\x13\x44\x55\xf6\x99\x00\x34\x06\x9e\xaa\x81\x1e\x3b\xc4\xda\x19\x0d\x80\xd8\x6f\x85\xad\x5e\xe1\x71\x60\xf9\xfd\x19\x42\x3d\x86\xc6\x38\x52\x27\x48\xa6\xa3\xbc\xfd\x98\x9b\xe2\xf2\x5a\xfb\xf6\x26\x9e\x37\x12\x62\xe6\x2b\x3a\xaf\x3e\x1b\x8e\x3b\xe8\xed\xda\x49\x28\xde\x2a\xb6\xf0\x09\x6f\x03\xb1\xfa\x39\x95\x36\x08\x03\x71\x96\x1d\x7d\x0b\x2f\x95\x61\x64\x03\xde\xa9\xc1\x9b\x66\x3c\xae\xb5\x75\x96\xa6\xb2\xee\x58\xf2\x40\x50\x2b\x28\x59\x47\x15\xb4\x6b\xc8\xad\xa5\x26\xa9\x04\xc1\x33\xeb\x1c\xd0\x57\x0d\x88\x35\x26\x0c\x54\x8f\x9e\x0a\x23\x61\xae\xb3\xc4\x57\x94\x3d\xea\xd5\xcd\x51\xc1\x39\xe0\x25\xeb\x9e\xab\x16\x6d\xae\x6f\x3c\x72\xc1\x99\x71\x10\x6e\x25\x77\xd2\x09\xc3\xc9\x9a\x36\x8e\x25\xca\x2d\xfb\xf4\x9c\x9c\x65\xc5\x05\x2d\x45\x18\x63\x1f\x32\x3d\xae\x65\x43\x2a\xcd\xd7\x97\xf7\x30\x8a\xc9\x9c\xb0\x98\xb0\x68\x01\x5b\x84\x01\x72\x90\x60\x38\x41\x18\xbe\xc3\xc9\x19\xba\x34\xf9\x45\x99\x84\x67\xaf\x75\xb8\xd0\x67\x98\xd1\xb1\xd6\x13\xc0\x08\x6b\x47\x39\x60\x66\x98\xce\x07\x42\x72\xeb\x6a\x46\xb1\xaa\x95\xd1\x37\xc8\xf5\x96\xa8\xcc\xac\xf8\x3d\x6a\xbe\x70\xa0\xb7\xa6\xd5\xd1\xcd\xb9\x1a\x0c\x32\x1d\x9d\xc2\xbf\x0b\x09\x77\x0e\xa8\x28\x47\xd1\x21\x09\x01\x73\xa0\xf5\x78\xc1\xc5\x58\x07\xac\xb7\x0b\xbf\xdd\x8a\x3c\x16\xaf\x8f\x82\x52\x33\xa3\x8c\xce\xd2\x99\xe7\xbc\x33\x15\x1b\x22\x6b\xbf\x34\x99\x28\x73\xad\x07\x44\x0e\xbc\x1d\xe9\xcb\x95\x2d\xd0\x84\x3e\x11\x36\x60\x73\x4e\x99\x3a\x43\xd7\x5c\x11\xaf\x44\x86\x81\xce\xe2\x73\x45\x67\x06\xed\x55\x10\x7d\x0e\x0c\x28\x38\x00\x6d\x4e\xb1\x3a\x41\x71\x0a\x47\x95\x11\xa5\x59\x87\xbe\x71\x15\xac\x0c\xc4\x87\x8b\x01\x33\x37\xdd\x18\xd3\x24\x15\xc4\xca\xac\xd8\xe4\x05\xe5\x43\xce\x47\x66\x91\xe0\xbc\x49\xcc\xe8\x64\xaa\xf4\x12\x69\x19\xcf\xfa\x1b\xa7\x9a\x1b\xf1\x01\x1b\x11\x84\xd1\x9c\x4b\xaa\xe8\x53\xe6\xbf\xa4\x63\x84\xa5\x04\x0b\xca\x19\xba\x2c\xd8\xff\xa9\x04\xd5\xbb\x2e\xae\x98\xb2\xa1\xb5\x3d\xd7\xe7\x23\x6d\xbd\x90\x85\x5e\x2c\x95\xf1\x48\xf2\x24\x55\xbe\x0b\xb6\x7a\x6d\x73\xd3\xb8\x2b\x5c\x00\x06\x62\x3e\x1e\x30\xb7\xaf\xe5\x19\xea\x48\x24\xb9\x5e\x25\x69\x96\x32\x12\x54\x11\x41\x0d\x8a\x15\x51\x66\x11\xb2\x73\x9a\x9d\x81\x19\x16\x8f\x5a\x84\xf2\x2d\xf0\x06\x53\xb5\x60\xed\x18\x19\x09\x09\x60\xbd\xfc\xe5\x00\xd3\x3f\x62\x9c\x9d\x32\x32\xc1\xab\x56\x64\xc0\x0a\x4b\x82\xbe\xa3\xe3\x5c\x21\xad\xf3\x39\x7a\xb4\x1b\x42\xe4\x53\xdd\x2a\x99\x8e\xeb\x16\x69\x9c\x70\xbc\xc2\x6d\x3c\xce\x0f\x3d\xfa\x07\x1f\x99\x31\x6a\xbd\x9f\x2b\x90\x02\xb5\x7a\x35\xe6\x82\x4c\x31\x8b\x4f\xdc\x62\x15\xc7\x06\x37\xa3\x35\xb5\x39\x65\x0c\x24\x41\x07\xa2\x4c\x0c\x16\x15\x66\xde\x5a\x58\xc5\xcd\x2e\x45\xbe\x0e\x6b\xdd\x15\x59\x6b\x50\xfb\xc5\x18\x20\x0c\xcb\x5b\xcc\xed\x11\x97\x74\x36\x4f\xf2\x9c\x2e\xcf\x36\x3a\xd6\x22\x96\xe3\x91\xfc\x09\x4c\x57\x4e\x6b\x83\x5b\xdd\xae\x9c\xde\x67\x15\x23\xcf\x18\x29\xdc\x1a\xce\xe6\x65\xca\x80\x7a\x2c\xec\x3b\x49\xf4\x3f\x15\xc9\xd5\x3e\x23\xac\x0f\x98\x13\x41\xbe\x07\x2e\x63\x9b\xf5\x8c\x67\x5a\x84\x36\x30\xb7\x96\x7e\x28\x32\x4e\xee\xc2\x39\xb1\x87\xc1\xbd\x5a\x79\x51\x29\xaa\xc5\xec\x1f\x29\x20\x74\x5d\x6e\x09\xbb\x4f\x59\x4c\x6a\x8b\x59\xb5\xe2\x1a\x75\x77\x8b\x61\xa8\xc3\x4d\xeb\x4f\xf4\xa7\x44\x12\xa4\x9e\x33\xa0\x38\xad\x57\x81\xc9\x52\x90\x84\x3c\xe1\xfc\x8e\xcb\xfa\xb2\xec\x32\xc2\xb2\xa6\x3c\x0c\xa0\xad\xe9\xf1\x6f\x9e\x38\x9d\x8d\xef\x46\x0f\xe5\x09\x27\x36\x71\xc5\xfa\xca\x65\xfd\x82\xf5\x2e\xb7\x8a\x21\xb5\xad\x54\xd1\xb3\x5e\xc4\x70\x7d\xff\x4c\x16\xd5\x14\x59\x01\x62\xd8\x94\x8d\x9e\x91\x7d\x0d\x5b\xf5\x6d\xfe\xcd\x32\x8d\x6b\x29\xf7\x73\x61\xca\xaf\x90\x44\x75\xbb\x54\x81\x1b\xfe\x94\xe9\x78\x4c\xbf\x82\x56\xeb\x6e\x12\xa7\x79\x44\x82\x4b\xcd\xc5\x40\x56\x41\x6e\xf1\x8c\x23\x79\x9b\x84\xaa\xca\x2f\xb5\x96\xb5\xf6\x8e\xae\xa5\xf6\xdf\x53\x22\xb6\xa2\x77\xb6\x55\xd7\x09\x47\xf4\x4e\x49\xb5\x8e\xe8\x1a\x55\xb8\x65\x4c\x92\xdf\x6a\x1f\xd7\x90\x6e\x35\xfc\x79\xe5\x67\x23\xc3\x7c\xd7\x1f\x88\xcf\xb5\x1b\x6d\x6a\x79\x7c\x5a\x16\x9b\xec\x8a\x12\x69\xfe\x76\x62\x01\xd6\xb1\x0d\x9c\xca\x52\x9d\xb1\x8b\x19\x31\x8e\x11\x53\xb3\x4a\xd9\x4a\x0b\x9e\xa6\x6e\x1b\xa3\x6c\x32\x60\x8e\xb6\xf2\x04\x99\x30\xf1\x12\x43\x2d\x60\xdb\x63\xef\xd3\x6c\x63\xb7\x33\xa9\x1a\xbf\x3a\x23\x52\xea\x8b\x51\x2a\x81\x29\xb3\x3e\x1c\x47\x1f\x39\x60\xe8\xb4\x1c\xa7\x7e\x02\x76\x84\x13\x97\xed\x7a\x92\x0f\x50\x0e\x98\xc9\x38\x41\x7f\x46\xdf\x29\x3c\x31\xb7\x04\xa0\x57\xe2\x04\x70\x2f\x41\x4b\xb0\x5a\xb9\x97\x1c\x90\x9d\x48\x1a\x7f\x7f\xde\xd4\xa7\xb1\x21\x7c\x07\xcd\xc0\x21\xd7\x34\xcc\x09\x44\xc7\xf9\x3f\x48\xfc\x7d\x53\x4b\xf9\x47\x8f\x64\x71\x52\x26\x72\xfd\xbd\xd1\xc7\x5b\x45\x68\xee\xeb\xe2\x80\x41\xb7\x77\x52\xe2\x11\x49\x7e\xc9\x27\x8a\x1a\x59\xd1\x8f\x94\xe1\xed\x78\x50\xe5\xf0\xda\x45\xa0\x8f\x16\x75\x75\xeb\x2a\x58\xcf\xc6\x88\x2b\x1d\x23\xcb\x12\xa4\xbb\xb3\x12\xbb\xab\x6a\x88\x21\xea\x71\x4a\x92\x39\x8a\xe9\x18\x5c\x6f\x0a\xf6\x4b\x06\x1e\x6b\xea\xfd\x68\x85\x66\x96\x32\x03\x04\x6c\xa2\x3e\x9e\xed\x49\xb7\x2c\x23\x6f\xfc\x6c\xc0\x7a\xea\xbd\x44\x52\x09\xce\x26\x5a\x99\x8e\x9f\xa8\xcc\x0b\xd9\xe9\x03\x99\xce\x88\xb0\x5d\x50\x69\xa4\x6e\x5b\x04\x0a\xbb\x8b\x4d\x8f\x4d\x5f\x7d\x20\xf8\xb8\x62\x8b\xfa\x47\xa3\x57\xe8\x51\x4a\x17\x35\x55\x11\xf6\x6e\x17\xb7\xc4\x3b\x5f\xd8\x74\xf9\x8b\x6f\x9d\x44\xb3\xdc\x90\xe9\xf8\xe5\x87\xb2\x19\xd3\x52\xbd\xc1\x84\xb9\xf6\x85\xd0\xf6\x22\x70\x55\x13\x52\x93\xe6\xa4\xfb\x71\x8e\x2d\x33\xb8\xb5\x54\xac\xd2\x04\xed\xa8\x8d\xf6\xe4\x9b\x30\x09\x05\xfb\x87\x54\x58\xd1\xc8\xde\x02\x5c\x58\x2b\xae\xd5\xab\xeb\x97\x76\x5b\x9d\x44\x46\x38\x59\x5e\xe1\x06\x9f\xba\x79\xbf\xd9\xd0\x69\x8f\x9b\x69\xbb\x11\xd8\x25\xe2\x49\xb2\x4e\x99\xba\xd2\xcc\x2f\xf2\xcf\x9b\x47\x94\xf7\xa3\x17\xc0\xad\x05\x9c\x1a\x63\xa0\xc0\x89\x75\x17\x49\x65\x57\xc9\x7f\xc9\x5c\x6a\x0b\xab\x3e\x0e\x18\x1f\x43\x21\xc3\xa4\x2e\x72\x7d\x2e\xf8\x8c\xae\x53\x49\xc3\x04\x73\xdf\x39\xdf\xff\x0a\x4f\x8a\x8b\x10\x00\xf3\x9b\xd9\x5e\xb6\x47\xc0\x64\xc0\xd6\xa4\xd6\x70\x86\x66\x78\xbe\x11\xc1\x57\x45\xbe\x74\xd0\xcc\x84\x1d\x59\xea\x01\xa6\x36\x81\xe4\x54\x20\xf2\x33\x5e\xe4\xf0\x37\x75\x35\x12\xd8\x5a\xdb\xe1\x41\xbf\xde\x63\x63\xbe\xc6\xe1\xcc\xe1\x6a\xec\xe9\xc3\x6e\xcf\x7a\xe7\x2f\x8b\xc4\x30\xab\x6f\x68\xda\xe6\x3c\x5e\x54\x6d\xea\xb5\x4f\xa6\xa3\xe0\x3e\xfd\xb0\x3e\x13\xf1\xbe\xf9\xd7\x3a\x77\x6b\xf1\x68\x79\x2d\x22\x18\x4e\x33\xa9\x3e\x17\xf6\xe1\xce\x69\x54\x6a\x07\x9e\xe5\x09\x63\xb7\xd5\xad\xbe\x00\xcd\xec\x21\x69\x45\xac\x2d\xf1\xb9\xd6\xab\xf5\xe0\x7a\xcc\x2a\x3b\x6c\xad\xc9\xad\x22\x06\x70\x33\x69\xb5\x86\x3c\xfb\xc4\xc2\x00\x8c\x69\x42\xe4\x19\xea\x55\x38\x71\x5d\x12\x7e\x16\x34\x6e\xd2\x01\x9d\xf4\x94\x0a\xea\x15\x7f\x77\x32\x12\xa2\x50\x84\xce\x0f\x64\xf1\x9c\x16\xe0\x3e\x9d\xf2\x67\x93\x81\x27\xa8\xe6\x59\x46\x58\x55\xe0\xd2\xd2\xbc\x80\x5a\x8f\x90\x71\xa8\x65\x1f\x70\x93\x17\xa1\xd5\x9c\xcc\x19\xe6\x5b\x20\xca\x4b\xba\x8b\x32\x9e\xed\x31\x0e\x5c\xaf\x7d\xfd\x45\x1b\xa5\xc0\xbd\xbb\xc5\xe8\x32\x29\x7f\x7d\x7b\xe4\x47\xf8\xd4\x19\x76\x31\x1a\x0b\x02\x5a\xf6\xff\xc7\xde\xbb\x36\x37\x6e\x24\xe9\xc2\xdf\xf7\x57\xd4\x7a\xdf\x88\xee\x3e\x4b\x51\x6e\xfb\xcc\x84\x57\x1b\x8e\x78\x69\xb5\xda\xe6\x58\x2d\x69\x74\xb1\x67\xcf\x70\x82\x5d\x04\x8a\x24\x46\x60\x15\x8c\x02\xa4\xe6\xec\xce\x7f\x3f\x51\x99\x59\x17\xdc\x48\x40\x94\xda\xde\x3d\xf3\x61\xc6\x2d\x02\xa8\x7b\x65\x65\x65\x3e\xf9\xe4\xc6\xf1\xa6\x61\xe2\x04\xa5\xe0\xbc\xbb\x79\xf7\xe3\xf1\xdd\x94\x89\x22\x62\x69\x72\x2f\x66\x32\xd2\x0f\x70\xe9\xfb\xa5\x14\x85\xf9\xb9\xc3\x08\x94\x6c\x84\xd4\x20\x09\x92\xa2\xe7\x7d\xcd\x0e\x8c\xf9\xef\xbb\xea\xf7\x7d\x6e\xe5\x8e\xeb\xd3\xac\x5d\x9b\xd3\x10\x96\x29\xa4\x6d\xc3\xa1\x6d\xb1\x6b\x7e\x87\xfe\xd6\xb3\xb6\x8c\xe7\x4f\x08\x89\x96\x7f\x2d\xe5\x40\xa5\xeb\xd4\x7f\x14\xb4\xa2\x43\xa7\xdb\x64\x1c\xf2\x99\x0c\x8b\xb5\xc6\x6f\x5a\x4b\xdf\x27\x44\x3c\xf5\x8d\xf5\x9f\xfb\xe4\xf0\xac\xc8\x85\x00\x11\xe2\xd6\x13\x9d\xf5\xc4\xb6\xe6\x3a\x16\x7c\x34\x9e\xc9\x0f\x16\x55\xe7\x7f\xd5\xde\xd7\xb0\x59\x04\x69\x5e\xaa\xa5\x40\xb1\x71\xa2\xdd\x0f\x90\xb4\x4f\x97\x69\x81\x59\x8b\x97\x89\xe4\xa9\x6b\x28\x3e\x69\x93\x12\x39\x97\xd1\xfa\x50\x37\x79\xb2\x9c\x8b\x74\x88\x26\x3a\x5d\x9e\xa5\xda\xac\xef\xe8\xbe\x63\x77\x3e\x25\x2f\xb7\xef\x0c\x7a\x9c\x28\xb7\x27\xf3\x6e\x76\x9e\x62\xd6\x60\xc1\x00\x87\x55\x8f\x90\x47\x12\x30\x33\x8b\xa4\xa9\x23\x0c\x0b\x43\x53\x5d\xd8\x19\xd4\xc2\x78\x31\x93\x79\x29\x21\xa1\x98\x43\x65\x72\xe6\x73\xc2\x44\x16\x23\x41\x88\x95\x95\x11\x13\x98\x72\x05\x5f\x36\xf7\x33\x55\x6a\xf0\x47\x6d\x44\x61\x0e\xa8\xd7\x90\xeb\x1f\x61\xd1\x23\x96\xe5\xc9\x06\x5c\xca\xfa\x4d\xcb\xd4\x9d\xf2\x82\xa7\x6a\xf5\xdc\x56\xa5\x27\x86\xd8\xd8\x66\xb0\xe9\x3b\x33\xf8\x2b\x21\x45\x0e\x1d\x05\x5b\x76\xeb\x16\xee\x61\xe5\xee\x90\xdc\xe0\x49\x24\xe7\xaf\x76\x16\x0b\x5e\x16\x6a\x63\xee\xb7\x3c\x4d\xb7\x23\xf4\x3a\x0b\xb6\xe6\x7a\x6d\x27\x1a\x1d\x86\x7d\xce\x26\x1a\xdc\x53\x1e\xad\xc5\x4d\xc1\x8b\xb2\x15\x99\x55\x6b\xe5\x17\x42\x96\x9b\x2f\x4e\xd8\x9f\x7d\x1f\x4f\x27\xa7\x3f\x9c\xcd\xdf\x4d\x6f\x26\xdf\x9d\x9f\xbd\x0b\xfa\x43\x4f\x3e\x4c\x6f\x6e\x9a\xbf\xfe\x30\xbd\x6d\xfe\x78\x75\x79\x75\x77\x3e\xb9\x6d\x2b\xe5\xfc\xf2\xf2\xc7\xbb\xab\xf9\xfb\xc9\xf4\xfc\xee\xfa\xac\xe5\xd3\xbb\xdb\xee\x87\x37\x3f\x4e\xaf\xae\xda\x4a\x3d\xfb\x69\x7a\x6a\xaa\xa3\xdf\xff\x12\x6c\x3b\x70\x9d\x9b\x11\xe8\xe8\x5f\x7d\x67\x1e\xb1\xea\x8b\x27\xec\xae\x9e\xf7\x8a\x02\xb1\x90\x44\xec\x91\x6b\x23\xdc\x20\x0e\x10\x4c\xb0\x7e\xb4\xba\x3e\x45\xac\x72\xb4\x16\x2c\x55\xea\xbe\xcc\x48\xe6\xa1\xb5\x5d\x2a\xb4\x08\x09\x1d\x94\xf6\xc3\xf4\xf6\xa4\x99\x7f\xcb\x15\x16\xd0\xa5\x3a\xe3\xf2\x23\x47\xea\x00\x90\xb3\x60\x64\xb1\x79\x99\xbc\xeb\x3a\xa8\xc1\x4d\xd9\xae\x7a\xb0\x34\x2e\x8b\x5a\x35\x71\xec\x49\x96\xa0\x63\x41\xc1\xd5\x09\xdf\x35\x9a\x6e\x38\x30\xf1\x28\x5b\x88\x88\x97\x88\xe8\x36\x07\x58\x9e\xab\x3c\x6c\xb0\x5f\x28\xcf\x57\x28\x2d\xb0\xd6\x02\x6b\x73\x66\x3a\xae\xef\x93\x2c\xab\x4c\x3b\x2d\xc4\xfd\x33\x0f\xa9\xde\x1e\x92\xa8\x10\xf1\x17\x4d\xbd\xc8\xc7\xe0\xa3\xde\x6c\x76\xb5\x69\x72\xb0\xd7\x13\xb9\x42\x5b\x82\x4d\xba\xb7\xde\x3a\x14\x12\x80\x5e\x3d\x0c\x18\x92\x80\x98\xb3\xc6\x25\x45\x4b\x00\x56\xc4\x0b\xf6\x28\x80\x8e\xa6\xa4\xac\xa3\x78\xa7\x37\x32\x03\xaa\x43\x3c\x80\xcd\x21\x5c\xa1\xa9\xe9\x14\xf2\xcf\xa1\xc8\x9b\xef\xb5\x18\xe6\xc4\xdb\xcb\x29\xf2\x0e\x0b\x05\xa9\x6f\xe3\x05\xa0\xc5\xcf\xe9\xf4\x6b\x39\xe9\xf6\x1c\x42\xe6\x38\xe8\xd3\x1e\xcb\xe3\x56\x49\x8e\xd2\xbf\x61\x95\x04\x1a\x7b\xc7\xea\x56\xc5\x7c\x6b\x16\x07\x80\x1e\x74\x99\x65\x2a\x2f\x58\x47\x19\x08\x81\xc4\xf6\xc1\x59\x46\xfd\x70\x22\x12\x0a\x31\x9a\x8b\x6e\xc9\xc3\xd6\x8f\x5a\x8a\xc6\x35\xf0\x9d\x05\xc1\x45\x70\xc1\x74\x39\x33\x37\x95\xab\x7a\x65\x85\xb6\x29\xd5\x87\x44\x67\x66\x46\x71\xe8\x9b\xc2\xb9\xad\xf6\x4b\x5b\x42\xeb\x94\xa7\x62\x59\xcc\x07\x3a\xbb\xa0\x44\xd9\xc5\x06\x98\xac\xd6\xcf\x50\x62\xff\xdb\xc7\x57\x04\x8a\x36\x57\x8e\xc0\xf2\x90\x2b\x55\xa0\xde\xeb\xef\x46\xcc\x8e\x26\x98\x2d\xa8\x52\x8a\xa3\x77\xca\xa5\xb9\x4b\x20\x96\xcc\x85\x9c\x8f\x67\xf2\x0c\xc0\xa7\xfe\x82\x63\xc3\xeb\xe1\x76\xb1\xf7\x5e\x51\x49\x58\xff\x59\x23\x5d\xba\xb3\x03\xf8\x75\x8f\x90\x45\x91\x6e\x1d\x47\x54\xcc\x2a\xdf\xf5\xd9\x3d\x68\x4d\xb7\xaa\x25\x76\x18\xb7\x8e\x2e\x44\x46\x16\x7f\xec\xa7\x47\x49\x83\xb7\xd9\x54\x35\x66\x3f\x5b\x8b\x12\x04\x0d\xb9\x20\x1a\x8b\x7b\x4d\xf9\xd6\x12\x8a\xb7\x0d\xec\x73\x70\x74\x3f\x77\x18\xd1\xee\x01\x76\x64\x9c\x2d\xa3\x5c\xb9\xd8\x4b\x89\x96\xde\x01\x30\xa4\x53\xf7\xd1\x8d\xd8\x8d\xa8\x7c\x0f\x29\xdc\x09\x95\x0e\x3a\x8b\x4c\xb7\xff\x8c\x93\x85\x2c\x1e\x16\xa4\x41\x29\xb5\xc9\x33\x6b\xf6\x0f\x78\x16\x91\xe4\x83\x2d\x93\x34\x05\x3d\x60\xcc\x26\x72\x6b\x49\x30\xcc\x51\x68\xc1\xa9\xc9\x4a\xaa\x7d\xf1\xf9\x1d\x8b\x29\x0a\x16\xd3\x4d\xf7\x62\x42\xfc\x87\xe7\x40\x7a\x9e\x15\xf5\x0c\x7c\x78\x46\xb6\xf0\x66\x36\x95\xfe\x2c\x78\x03\x8c\x02\xe1\x69\xfe\xb9\x22\xcb\x1a\xcd\x0d\x3e\xfc\x7b\x7b\xd3\xbf\x2f\x79\xce\x65\x01\xf1\x52\xa4\xb4\xe6\x22\x08\xdb\x16\x9f\x00\xdb\x2a\xd1\xc0\x0c\x3f\x85\x93\x6b\xa1\x04\x08\x3f\x4b\xe2\x11\x4b\xc6\x62\x0c\x99\x7d\x73\xa3\x4b\x2c\xfc\x9b\x6b\xa3\x39\xcc\x64\x23\x0e\x64\xcc\x26\xa9\x56\xf4\x85\x90\x51\xaa\x34\x40\x7b\x17\x21\xe9\x3a\xac\x7c\x72\x57\x2d\xb6\x70\xbf\x81\xa9\xf4\xc5\x2b\x7a\x10\x7c\x08\x09\x6a\xc1\xd7\x9e\xc2\x4e\xf7\xbf\xff\xab\x22\xfa\xd8\x2e\xfc\xc5\x0b\xa6\x02\x6b\x1c\x43\x2f\x36\x49\x98\x66\x7a\xd7\x04\xc1\x1b\x30\x31\x3e\x3e\x27\x60\xaf\x63\xaf\x79\xc1\x52\xc1\x75\xc1\xde\xbe\x19\x84\x39\xb1\x1d\xf4\xd2\x95\xb6\xaf\x0f\xb2\xb7\x61\x9a\xa1\x72\xe7\x2a\x86\xbc\xc3\x3c\x2f\x18\x67\x52\x3c\x86\x51\x39\x0a\x02\xa9\x6c\x32\x61\x11\xf0\x82\x20\x16\x1f\x59\x8d\x20\xd2\x15\xaf\x4c\x1d\x72\xc4\xa6\xca\x20\xb7\x2c\x35\xab\x65\x65\x8d\x1c\xaa\x0d\x60\xec\xe6\x25\x1f\x30\xb9\xe6\xc5\x4c\x92\x64\xb5\x70\x94\x20\x44\x7e\x92\xa6\xd5\x20\x45\x0e\x71\xb8\xd2\x74\xd8\xb4\x3e\x1e\xbb\x01\xba\x80\xeb\x97\x8b\x14\xab\xd8\xff\xfc\x66\xc1\x58\x06\xc7\x15\x19\x96\xdd\xaa\xed\xb4\xd9\xad\x3f\xa3\x12\xdc\x52\xfd\xb9\x5a\x25\x11\x4f\x7b\x28\xc3\xa2\xad\xc9\x7b\x36\x56\xd3\x57\xb0\x43\x37\x7e\xee\x0a\xfa\xab\xca\xed\x76\x77\x38\x66\x1f\x55\x8b\x19\xbf\x63\x72\x03\xdd\xe2\x90\x0b\xb8\x0b\x59\xfc\x5c\x9e\xe4\x4a\xd3\xa7\x31\x10\x26\xec\x97\x82\x9e\x80\xc0\x8a\x0e\x8c\x5b\x8b\x83\x78\xe8\x20\xfc\x92\x40\xa4\x28\xf8\xe8\xcd\x0e\x8f\x6e\xf6\xdf\xbb\xfb\x23\xdf\x7f\xdb\x15\x07\xae\x6b\x76\xbc\x5b\xd9\x9b\xc4\x7f\xe5\x11\x44\x49\x42\x4d\x36\x3e\xb3\x49\x66\x69\x53\xa0\x70\x70\x12\xb4\xaa\x87\x59\xae\x22\xa1\xf5\x98\x9d\xc1\x41\x43\x7f\x32\xbe\xb4\x8e\x8e\xe0\xe5\x99\x34\x37\x13\xcb\x7d\x17\x94\x5f\x5d\xe2\x6d\x3b\x00\x89\x74\x0f\xf2\x11\x6d\xf6\xe7\xb7\xeb\xba\x4d\x58\x1e\x5f\x28\x03\x52\x62\xb1\xb3\xd5\x09\x8b\x55\x74\x2f\xf2\xe3\x5c\xc4\x89\x3e\x01\x9f\x7d\xd1\xe9\x2c\xdc\x98\xdb\xf6\xc1\x9a\x46\x17\x00\x61\x0f\xa1\xc0\x29\xd6\x4f\x21\x05\x36\x34\x69\xc4\x92\x25\x5c\x27\x6c\x3c\x2b\x06\x70\x59\xaa\x40\x21\x8b\x7c\x8b\x68\x67\x6b\xca\xaa\x0d\x84\xbd\x69\x18\xa5\xad\x2b\x12\x3b\x7f\x0e\x6c\xcf\x13\xbb\x8d\x11\x3f\x04\x64\xc0\x4e\x15\x8a\xe2\xc0\x50\x5c\x64\xbc\x58\x6b\xa0\xfd\xa8\x8e\x01\x5d\xba\xe0\x53\x33\x42\x3c\x03\x1c\x04\x5a\x29\xfc\x47\x8e\x9c\x42\x17\x49\x9a\xce\x24\x06\x6e\x00\x43\xc7\xab\x56\x76\x21\xf3\xe9\x88\xf1\x38\x66\xff\xdf\xeb\xf7\xe7\xff\x71\x7b\x36\x9f\x5e\x80\xcd\x7b\x7a\x7e\xf6\x66\xe4\x7e\xbc\xbc\xbb\x75\xbf\xa2\x85\xe5\x41\xe4\x6c\xc3\xef\xe1\x8a\x27\xb5\xa0\xc0\x53\x31\x93\x61\x4b\x2d\xef\x92\x79\xa2\x85\x45\xd0\x92\x9a\xe2\xe8\xa7\x69\x0e\xbb\x48\x5b\x89\x8e\x73\xc0\xe5\xf7\xda\x7d\xb2\x7b\x0d\xda\xc5\xe3\xaa\xb0\x6a\x20\xc4\x17\x73\x1d\x10\xf1\xd0\xdd\xd7\x2f\x38\x21\x57\x89\xec\xc2\xf9\x09\xf9\xf0\x92\x4a\xfc\x8f\x62\x0b\x40\xf3\x2b\x9e\xe4\xbd\xd7\x5e\x3b\x93\xa2\xdd\x31\xe6\x9e\xce\x75\x7d\x53\x69\xd4\x85\x31\x52\xb9\x13\x4b\xda\x46\xa2\xfb\xab\x77\x97\xa8\x39\xc5\xa7\x22\xb7\x0c\x5f\x2e\x16\xd6\xd2\x60\xba\x83\xc6\xaf\xc1\x99\xbc\xbd\x7c\x77\x79\xc2\x44\xca\x17\x0a\xc2\x20\x09\x6a\x64\x8b\xa0\x01\x8b\xd4\x26\x28\xa8\xc2\xee\x36\x62\x99\x67\x77\x0b\x8d\x68\x63\x2c\x63\x0f\xcb\x5b\xa6\xf2\x26\x37\xda\xf3\x5e\x01\xa9\xb3\x57\x2a\xef\x73\xfc\x9b\xd7\x30\x2e\x24\x33\x17\xb9\x9a\xe4\xa5\xb3\x79\x29\x38\x30\x7f\x90\x5b\x88\x6c\xf9\x04\x8c\x4d\xd3\x4a\x2e\x6e\xb3\x71\xf4\x98\x5c\xfb\xfe\x4d\x25\xd9\x8f\xdf\x68\xb6\x28\x8b\x99\xac\x96\xa1\x24\x9b\xfc\x7c\xc3\xbe\xe3\x45\xb4\x7e\x33\x93\x10\x97\xf8\xe3\x37\x1d\x34\x94\x83\x99\x9d\xcd\x98\xbc\xe3\x05\x3f\x57\x3c\x4e\xe4\xaa\x8d\xd6\xd9\xe7\x1e\x3c\xbb\x9d\x9c\x30\x9b\x02\xc6\x47\xd1\x16\x96\x4e\x25\x28\x08\x04\x32\x74\xc4\x4a\x11\x10\xe5\xb2\x4a\x7d\x8b\x37\x33\x38\xb0\x66\xf2\x16\xf9\xac\x8d\x54\x4d\x0a\x96\x29\xca\x7f\x69\x6e\x65\xc8\xf4\xcd\x6d\x74\xb9\x48\xb7\xcc\x8c\x0e\x2c\x63\x37\x19\xa4\x8f\x81\x3e\xd3\x14\xf6\x33\x09\x17\x74\x17\xd7\x9b\xaa\x88\xa7\x80\xf5\x3b\x0a\x6c\x7a\xe6\xda\xae\x4a\xe0\xd6\x01\x90\x8d\xdc\x56\x21\xb9\x8e\xee\xc9\x29\x65\xe1\x44\x81\x01\x00\xe6\x91\xfc\x90\x1b\x65\x24\x0e\xf2\xd8\x82\xf1\x2d\xc5\xd1\x31\x1f\x3a\x5e\x5b\x1c\x16\xf3\xd4\x85\xbc\xab\x52\x5a\x1e\xb7\x08\xcc\xf7\x72\x0b\xb0\x70\x48\x58\xa7\x00\x52\xe2\xa5\x33\x2d\xca\xc6\x2c\xba\x33\x31\xf8\x6c\x26\x11\x81\x58\x99\x97\x90\xf9\x30\xa8\x5d\x49\x00\x48\x36\xe3\xec\xcb\x8c\x00\x93\xa4\xeb\x67\xb9\x38\x72\xd1\xe3\x71\x65\x4c\xcd\x09\x3b\x66\xd7\xe1\xf5\x3a\x56\x51\xb9\xb1\x59\x29\x20\xf2\x9c\x90\x75\x74\x88\xba\x15\x82\x07\xfb\xbe\x15\x0f\x0c\x77\x85\x00\xea\x9d\xde\xf7\x63\x5c\x30\x93\xf0\xd3\xa6\xa6\xde\xad\xf8\x82\xec\x38\x0c\x0d\x87\x05\xcd\xb3\x6a\x49\x95\xd2\x0e\xe6\x74\xb8\xf0\xcc\xf9\x2a\x07\x65\x4b\x7c\xca\x14\x18\xb9\x31\xb0\x5a\xc5\xaf\x34\x9b\x5e\x19\x0d\xc8\xdc\x78\xdd\x1e\x2c\x75\x81\xa0\x35\x8c\x7f\x86\xaf\x31\x0c\x61\xc4\xbe\x64\xb3\xf2\xcb\x2f\xbf\x8e\xd8\x27\xfb\x8f\xdf\xff\xee\x77\x5f\xff\x7e\x48\x98\x8a\xbd\x90\x43\xb9\x7e\x8c\x5c\x2a\xd2\xaa\x4a\x14\xce\x40\x53\x52\x1d\x30\x0b\xb4\x01\xbb\x86\xff\x29\x0c\xd9\x01\x26\x89\xaf\x68\x87\xeb\x70\x67\xb2\xca\xd6\xf4\x48\x02\x2d\x8a\x51\x55\x42\x38\x65\x97\x34\xfa\x7f\xde\x41\xf4\x3a\x37\x5b\xe5\x69\xd8\xa9\x24\x75\xea\xb5\x29\x84\xbd\x26\xfb\x5f\x01\x0e\xc4\x37\xf6\x80\x53\x69\x2c\x72\x6c\x93\x33\xd9\x39\x43\x22\x08\x07\xf1\x29\x4b\x55\x6c\xa9\xe5\x3d\x8f\x42\x02\x0a\xc2\xd9\x27\x6e\x24\xf7\x88\x28\x48\x29\x6e\x15\x3c\x2f\x4b\x1e\x09\x8a\xb1\x7e\xfd\xe9\xc4\xfc\x36\x62\xdb\x13\x00\xa7\x8e\xd8\xdf\x4e\x88\x69\x90\xe7\xc5\xdc\xfc\xf4\xc6\xea\xda\x54\x04\x34\x3a\xd1\xec\xd5\xf1\x03\xcf\x8f\x41\x3c\x1f\x63\x8b\x5e\x91\x64\x75\x39\x95\x43\xdd\x3c\x55\xea\x9e\x80\xbb\x8d\x0f\x8f\x2d\x69\x2d\x2c\x6f\xe7\x37\xc1\xa9\x77\xa4\x46\x05\x3b\x82\x17\x04\x1b\x67\x0b\x36\xfe\xab\x56\x92\x8d\xb7\x7c\x93\xd2\xaf\xf6\x29\xe1\x8a\xb9\xa6\x58\xbb\xd8\x61\x84\xd2\x2d\x5a\x4a\xbf\x4b\xd5\x02\x7a\xf5\xc1\xf6\x14\x91\xb9\xd0\x50\x7f\xfa\xf8\x03\x8b\x3a\x62\x49\x3c\x80\x7b\x71\xa3\x0a\x7c\x85\xc2\x66\x9b\xbd\xfa\xe4\x9a\xf4\x27\xf4\x0b\xc3\xa0\xd8\xe0\x40\x34\x0e\x3b\x54\x9c\x29\xf4\x13\x7b\x4d\x22\xe8\x8d\x39\x63\x08\x06\x8d\xc3\xd0\x56\xc1\xd6\x55\xf0\x1f\x41\x05\x89\x64\x18\xee\xb9\xe3\xcb\xbf\x1d\x8f\xc7\x63\xf7\x35\x30\xfe\xfc\x1f\x96\x14\x5a\xa4\x4b\x2c\xc9\x9e\x60\xdb\x99\xfc\x60\x93\x56\x59\xe3\xb5\xa7\xc3\xce\x72\x55\xa8\x48\xa5\xec\xc8\x1b\x74\x63\x15\x69\xf6\x2f\x46\xad\x0d\x86\x12\x7e\x34\xf7\xb8\x0e\x0a\x7d\xcc\x92\xf1\x99\x36\x15\x19\xc4\xeb\xdb\x2a\x64\xc0\x75\x17\x5b\xae\xc3\x20\x67\x58\x0b\x66\xe5\x1c\x13\x4b\x6e\x9e\x9b\x97\xc5\xa7\x02\x1e\x75\x90\x10\xb7\x42\xe4\xdb\x4f\xca\x86\xb8\xf5\x5c\xc4\xb8\xac\x3b\x06\x80\xb8\x42\x49\x32\x60\x3f\x47\xa1\xfb\xc4\x1c\x2e\x32\x4c\xa3\xa4\xcb\xcd\x86\xe7\xdb\x63\xbf\xdb\x9a\x8b\xd3\xb3\xd4\x82\x8c\x49\xed\x00\x80\x0b\x37\xa5\xad\x45\x28\x06\x52\x2f\xed\x89\xe6\xf6\x6e\x04\x79\xb0\x03\xb6\x27\x21\x23\x15\xd3\xba\xf6\x51\xad\x55\x8d\xc5\xbd\xd3\xd4\x55\x2c\x22\x46\x7b\x63\x9c\x2c\x90\xfe\x8c\xde\xb0\x1f\x77\x88\x6f\x35\xd7\x85\x11\x94\xab\x01\xee\xd1\xe9\xe5\x8d\xfd\xa6\xff\xa1\x0b\xe3\x50\x55\xd9\x79\x1a\x72\x0b\xcb\x15\xcb\xf9\xa3\x3f\x7e\x01\xdb\x81\xd6\x99\xd2\xc5\xfc\xe2\xdf\xa7\xea\x2a\x49\xcd\xa9\x05\x6b\x7c\x3c\x93\x95\x9f\x47\x4c\xa4\xc9\x26\x91\x0e\x5b\x87\xc2\x5d\x2d\x51\x7b\xbe\x4f\x0a\x33\x65\x3a\xbe\x37\x12\xcc\x72\x62\x06\x57\xaa\x89\xdc\xda\xa5\xe3\x1c\x53\x64\x81\x28\xb5\x69\x97\xbf\xa3\x03\x1b\x40\x12\x8b\x23\x52\x48\x93\x60\xe1\xc1\xfe\x9d\x49\x53\x9a\xdd\x4b\x1e\x86\x1c\x94\x17\x14\x77\x64\x93\x09\x05\x12\x00\xea\xa8\x60\x89\x9d\xfe\xdb\xa2\xa0\x9c\xc9\x72\x73\x68\x10\x0b\xc1\x92\x7f\x2d\x33\xdd\x55\x2e\xec\x49\x45\x01\x51\x42\x96\x1b\xbb\xa1\x06\xac\xb8\x33\x52\x7f\x62\x11\xa5\x1c\x59\xfe\x4c\x41\x80\x7c\x1c\xa1\x83\x34\x0b\xea\xc2\xe3\x05\xab\xc1\xfc\x84\xa9\x90\xaf\xf1\xef\x37\x8c\xce\x86\x2f\x47\x74\x9e\xe7\xda\xb1\xa7\xe1\x9c\x43\x7e\x6f\x11\xa3\x0d\x1d\x32\x3a\xac\x78\x1e\xa3\xb5\x3c\xbc\x55\x60\x64\xb0\xd1\xbf\xb6\xaa\x64\x8f\x89\x5e\xcf\xe4\xad\xb2\x06\x47\x26\x95\xcb\x89\x31\x82\xcb\x68\xa3\x3e\xae\x41\x08\x40\xab\xdb\x56\x80\x11\xc2\x07\xc5\x30\x01\x88\x76\x2e\x55\x2c\x0e\x23\x7f\xbc\xf5\xbe\x0a\xeb\xbf\xce\x05\xc6\x99\xc1\x49\xd1\x15\xa6\x2b\xb4\x1e\x68\x9b\xaf\x4f\x3c\x9c\x43\x54\x8e\xa9\x55\x3d\x0e\xca\x4c\x12\xf2\xaa\xba\x53\x0d\x4a\xb1\x37\xce\x20\xca\xb8\x32\xf6\x2e\xd3\xc4\xa1\x93\x10\xb5\x30\x3d\xf6\x3a\xfb\xb1\xef\x11\x0c\xbb\x03\x18\x73\xb6\xca\x55\x99\xb9\x50\x7c\x1b\x46\x88\xd3\x40\x3a\xcd\x54\x2e\xd5\x09\xdd\xa9\xce\x13\x79\x8f\x2b\xfe\xa5\xe6\x08\x93\x89\x88\xb8\x42\x81\x6b\x33\xfc\x43\x1f\x8e\x58\x22\xa3\xb4\x84\x83\x4f\x17\x3c\xba\xc7\x84\x28\x5d\x46\x5f\xf3\xcd\x7c\x7f\x90\x66\x87\xc6\x54\xa6\x29\x55\xeb\x0f\x50\x20\x99\x03\x13\xd0\x43\xc2\x19\x67\x77\xd7\xd3\xf6\xba\xef\x93\xa6\x33\xa7\xfd\xf4\xac\x2e\x10\xf8\xbf\x1f\x93\x41\xb8\xcb\x1a\xa5\xb0\xa8\x2c\x75\x67\x5c\xea\x22\xac\xc7\x45\x5a\x98\x0b\x44\x7c\xdd\x62\xda\x1f\xbc\x4e\x57\x59\x39\x37\x03\x95\x0e\x01\x08\x98\x56\x7c\x7f\x75\x37\x09\xbe\xdb\xb5\x54\xbe\xbf\xba\x63\x41\x1d\x48\x16\x9d\x8a\xa8\x70\x48\xe3\x31\x3b\xf5\x39\x1c\xea\x9a\x79\x2c\x1e\x92\x08\x43\x67\x47\x46\x2b\x9a\x49\xa0\x46\x37\x77\x9d\x23\xcb\xa7\xc9\xbe\xbf\xba\x23\x16\x4e\xcf\x9b\x83\xe9\x28\x80\x1a\x63\xd8\xb1\x53\x23\x25\x97\x4a\x1e\x21\x65\x50\x1e\x7b\x6f\xc7\x08\x2e\xd7\x11\xcf\x8a\x92\x14\x8c\x87\xb7\x63\x3b\x27\xd7\xde\x13\x62\x9a\xa5\x66\xd2\xe8\x4a\x18\x63\x00\x99\xd3\x4c\xa7\x9b\x53\x5b\x1b\xd4\x43\xc0\x01\x30\x68\x07\x09\xff\xc4\x45\x0e\x72\xb9\x65\x3c\x5f\x24\x45\x6e\xae\x61\xf8\xf1\x08\x19\xce\xd6\x36\x3b\x16\xce\x9b\xd7\x8c\x28\xd9\x1d\x4c\x70\x22\x0b\x3d\x93\x41\x00\x8c\x8b\x36\xc6\xe0\x85\x44\x32\xa0\x12\x06\xec\x8d\xa5\x36\x8d\x52\x55\xc6\xf6\x58\xcd\x5d\xf2\xbc\x6d\x86\x4a\xd4\x4c\x02\xe3\x89\x39\x5b\x95\x51\x43\xfd\xd9\x7f\xc2\x3e\xca\x87\x24\x4e\xf8\x51\x21\x74\xca\x8f\x8a\xff\xfd\x71\x54\xfb\x89\xbf\xfd\xf2\xcb\x8f\x98\x07\xb0\x8b\xce\x21\x60\x6d\x3a\xd0\xc0\xd3\xee\xa7\x70\xfc\x87\x66\x95\x1e\x30\x4f\xe7\xc9\xbd\x60\x1f\x71\xba\x3f\x12\xf9\xf1\xd3\xa6\x6d\x26\xdb\xe6\x8d\x3d\x65\xda\x80\x8a\xbe\x7d\xde\xd8\x8e\x69\x7b\xbb\x1a\xff\x6e\xb5\x30\xb3\xf5\xd5\x6a\xfc\xf6\x4b\xf8\x67\x6d\x8e\xf6\x6d\x5e\x17\x3d\xd3\xd6\xec\x16\x41\xd4\xb2\x2d\x9d\x2c\x9a\xc9\xfd\xc2\x88\x0d\x93\x45\xb0\x6a\xdb\x36\x3e\x2f\xc4\xa1\x51\xb3\xc8\x89\x3d\x00\x7d\xdd\x20\x1b\xdf\xe9\x11\x3c\x90\xa9\xdb\xb3\x6c\x03\xdc\xb3\x9b\x32\x3c\x04\xe0\xc2\xc3\x01\x3c\x3f\xf0\x7e\xbf\xfe\xd4\xde\xdd\xd3\x9d\xdd\xcd\x4c\x85\x18\xc0\x4c\x73\x63\x5e\xef\xd9\xc8\xca\xab\xbb\xda\xf8\xc8\x31\x1b\x61\x33\x09\x4e\x4c\xb7\xf5\x21\xbb\xc8\x2e\x47\x34\x99\x68\x17\x36\xe8\x5a\x62\xa1\x95\xee\x7e\x6d\xeb\x5d\xd1\x5e\x0a\x93\x1d\x3a\xaf\x5b\xcb\xc2\x0f\x4c\x11\x07\x42\xe1\xcc\x95\x7a\xbe\xe9\x4d\xb0\xee\x2b\x7e\x47\x1f\x7f\x68\xd0\xad\x3b\xf5\xf2\x03\x44\x7c\x3b\x92\xad\x0d\x97\x46\x5b\xb3\xb5\x76\x38\x96\xf0\x96\xff\xa4\x26\xdd\x65\x4f\x6a\x10\xd6\xd8\x2f\x58\xcb\x56\x65\x4b\x79\x44\xdf\x2a\x4f\xd1\x77\x50\xac\xc1\xac\xec\xf3\xe7\x5a\x31\xe7\xcd\xcb\x98\x6b\x37\xe5\xf9\x0a\x8d\x5e\x5a\x14\xfa\x4d\xcb\x0c\xfb\x38\xb6\x03\x66\xd8\xaa\x5d\xf3\x61\xfc\x21\x56\x1f\x03\x93\xca\xae\x9d\xe6\x5a\x59\x4d\xb6\xe1\x6e\x5a\xb6\xfe\x90\x49\xde\x07\xd7\x45\x2a\xc7\xcc\x54\xc0\xf3\xda\xcd\xaf\x75\x20\xcd\xec\x05\xdf\x38\xf6\x18\x2a\xcd\x86\xfc\x62\xe3\x16\x02\xf2\xc4\x74\xb7\xa1\x17\x87\x6c\xdf\x26\x10\xd3\x6d\x57\x0b\x66\x72\x62\x5f\xf1\x6c\xd7\x3a\x41\x2b\x0b\x86\x23\x96\x0b\x8c\x70\x01\x9b\x19\xf7\xa3\x4e\x9d\xeb\xe8\xc4\xd0\x40\xff\x5a\x17\xee\xb4\xc8\xfd\x69\xe4\xd9\x50\xc3\x7e\x74\xd4\xdc\x8f\x0d\x79\xa7\x44\xb7\x5d\xa4\xa2\xec\x58\xee\xa9\x58\xe5\xfb\x98\x25\x77\x55\x6a\x11\x17\x66\x17\xaf\x80\xd7\x2c\x48\xe3\xdc\x55\x7b\xff\x6b\x12\x75\x83\x68\xb8\x11\x43\x01\x51\x09\xe9\xd6\x6f\x12\x4f\xd9\x5e\xab\xac\x29\x2b\x8a\x83\xce\x82\x84\x6f\xe6\xb9\xea\x4e\x2e\xdd\x63\xbc\x6c\x11\x15\x8f\xc1\x1a\x93\x4d\x6e\xd9\x2f\x25\x4f\xf1\x68\x95\xb4\x19\x6c\xb3\xc1\xf8\xf2\xd5\xef\xd9\x04\xce\x3e\xf6\x01\xa4\x32\x40\xc6\xa0\xb4\x42\xb1\x64\x93\x89\x5c\x2b\xc9\x3b\xb3\xac\xdf\x7f\xa3\xe7\x94\x29\xd6\x5c\xcc\x55\xd9\xcc\x0a\x3b\xa0\x27\x2d\xa5\x85\x9d\xe2\xec\xbe\x5c\x88\x5c\x0a\xcc\x24\x0f\xef\x31\xfb\x5e\xaf\xe6\x2a\x5e\x16\xeb\xaf\xe6\x51\x9a\xf4\x4e\x5f\x0b\xf1\xaa\x13\xf3\xd9\x29\x7e\xb5\xab\x03\x95\xf2\x2b\x4d\x97\x0c\x9f\x31\x7c\x36\x66\xdf\xf1\xe8\x5e\xc8\x98\x65\x69\xb9\x4a\x88\xf6\x06\x2f\x1b\x49\xd5\xac\x50\xed\x18\x6a\x36\x58\xbe\x39\x04\x67\x72\xc3\xef\x31\xa5\x0c\xa9\xb0\xe6\xde\xd2\x45\x9a\xe8\x0c\x35\xf3\xa4\xb9\x76\xf7\xce\x96\x3b\x8d\x9b\xc5\xd4\xd7\x9e\x2e\x31\x5a\xef\x71\xad\x08\xe3\x54\xb1\x13\x0d\xd8\xb8\x6e\xb5\x36\xd8\xc9\x2c\x83\x8c\x16\x51\x99\x9b\x37\xa8\x31\xb8\x7b\xc1\x81\x08\x69\x91\x4a\xc9\x38\x10\x9c\xbd\xd2\xac\xcc\xac\x10\x01\xcf\x56\x0a\x38\x23\x9c\x02\xf3\x20\x4b\xa2\x7b\x44\xb6\x42\xec\x06\x73\xdd\x6b\xa4\x9e\x66\xc2\x43\x2c\xdb\x44\xc3\x12\xe9\x7d\x0e\x43\xcd\x34\xb2\x2a\xed\x59\xa7\x3d\xe3\x52\x8a\xb5\x90\xf3\x27\x24\xf7\xe9\x3f\x69\x95\x18\x14\x52\xc2\x9d\x87\xd0\x0d\x61\x29\x13\x22\xf3\xf6\x37\x7c\x97\xb9\x22\x59\xd6\x94\xf8\x44\x33\xcd\x8b\x44\x1b\x59\xd6\x3a\xe2\x9e\x54\xe9\x90\x51\xe7\xc3\x98\x9c\x5a\x58\x9c\x6a\x63\xe1\xe2\xdc\xc6\xec\x3d\xf8\x55\x82\x7b\x89\x72\x9c\x48\x5d\x02\xab\x58\x8b\x4e\x72\xe0\xe7\x00\x88\xda\x1e\x04\xef\xef\x74\x97\xb9\x98\xc6\x31\x9b\x78\x7f\x36\xb2\x42\xa1\xa7\x7a\x4f\x8f\x44\xaa\xc5\x53\x16\x5f\x2f\xd7\x0f\x60\xbe\x60\x01\x31\xd0\xe3\xb4\xf9\xdd\xb3\xc4\xbb\x66\x3e\x02\x6d\x00\xbf\x17\x72\x97\x7d\xbf\x7f\x0b\xd1\x01\xb3\xd3\x20\xe1\x3c\x3b\x0a\x9d\x3b\x4f\x69\x60\xff\x6d\xe7\x89\xb8\x92\xe5\xb1\x19\x72\x73\x09\x8a\xee\x29\x58\x11\xfd\x7b\x44\xe5\xf5\xb8\x56\x3a\xdc\x67\x76\xfe\xf0\x1e\x9d\x97\x2e\x67\x17\x04\x7b\xba\x01\x46\x94\xa7\x54\x21\xd3\x17\xb4\xda\x6d\x52\x34\x2a\xb9\xf9\x66\x56\x84\xc2\x30\x00\x2e\xc2\x16\xd5\xb2\x9b\x65\x56\x3e\x57\x4e\x98\xfd\xf4\xda\xcd\x11\x6e\x34\xe8\xc7\x6f\xf4\x25\xd4\xf7\x1c\x64\x34\x68\x65\x7c\xfe\x40\xb0\x27\xba\xc0\x1d\xc4\xd9\x5a\x3f\x15\x04\x89\xd0\x41\x99\xa9\x98\xf9\xf5\xde\x15\x69\x23\xa5\x42\x88\xeb\x6f\xb0\x5b\x41\xe3\x7a\xf7\x6d\xdf\x56\xfb\x10\xe0\xe4\xd8\xa2\x4c\xd2\x18\x59\x0a\x03\x0d\x55\x59\x15\x08\xd2\x23\x81\x3e\x92\x68\x77\xc0\xb5\x2c\xfa\x1f\xbf\xd1\x57\x2a\x3e\x64\x61\x0d\x67\xa2\x6d\xae\xeb\x1e\x61\x34\x3a\xc4\x32\x6d\xf6\x8f\x44\xa6\xba\x03\x20\xe2\xb9\xae\xe6\x03\xde\xd1\x60\x40\xbc\x2d\xca\xe5\x0d\x24\x1f\xed\x22\x65\x0a\xf2\xf2\xd9\x28\x6b\x33\xcf\xa6\x1a\x17\xf3\xd7\x35\x29\x04\xa0\xf2\xfa\x08\x67\x7f\xb8\xb9\xbc\x38\xda\xf0\x5c\xaf\x39\x90\x5e\xd8\xb2\x46\x36\x9f\x3b\x5a\x0b\x2c\xb0\x23\x91\x33\x79\xc4\x56\x6a\x84\x30\xa2\x13\xb6\x2e\x8a\x4c\x9f\x1c\x1f\xaf\x92\x62\x5d\x2e\xc6\x91\xda\x1c\xfb\xa1\x39\xe6\x59\x72\xbc\x48\xd5\xe2\x38\x17\x10\x48\x72\xf4\x76\xfc\xd5\x5b\x98\x99\xe3\x87\xb7\xc7\x00\x1e\x19\xaf\xd4\xbf\x9c\x7f\xf5\x6f\x5f\xff\xde\x14\x9c\x6d\x8b\xb5\x92\x27\x84\x51\xda\x59\xf6\x11\x5e\x13\x8e\xf1\x93\x5a\x2d\xff\x36\xfe\x32\x6c\x06\xbd\xba\x51\xb1\x48\xf5\xf1\xc3\xdb\xb9\x9d\x98\x71\xd6\x91\x31\xe3\x1f\xa1\x17\x9f\x21\xf4\xe2\x3e\x29\xfe\x11\x7a\xf1\xab\x86\x5e\xf4\x57\xb9\x9c\x8c\x01\x8e\x6c\x2f\x1f\xcd\xef\x4e\x46\x5a\x4f\xc4\x3e\x39\xd4\x72\x38\x84\x81\x71\x07\x1c\x11\x03\x13\xd8\xd5\xba\xeb\xee\x32\x1d\x16\xc7\xa1\x79\x6a\x3a\x6f\x17\x83\x78\x40\x00\xe8\x98\x44\x60\x2b\x44\x0b\x69\xc6\x93\xb6\x80\x8a\x20\x6f\xcf\x01\x43\x88\x79\x44\xda\x49\xcf\xfa\xa4\xdb\xa2\x8c\x53\x22\x9e\x3f\x4b\xe2\xad\xd6\x3a\x10\x13\x3a\xb8\xfc\x86\xde\xdd\x43\x35\x26\x94\xf4\x41\x23\xfa\x82\x29\x52\x9e\x3b\x37\x0a\x75\xf7\x89\x79\x51\x52\xfc\xda\x62\xba\xd5\xa3\xcd\x87\xf2\x1c\x59\x44\x3c\x5e\xbd\x5f\x06\x11\x5c\xa4\xd0\x16\xdb\xae\x8e\x66\xac\xb9\x7e\x5a\x70\xc0\x04\x29\x88\x9d\x2f\x18\x91\xd5\x89\xb6\x15\xda\xd3\xd8\xb2\x2f\x99\xc3\xdd\x92\x3c\x66\x65\x9e\x29\x2d\xf4\x98\xbd\x57\x39\xd2\x7a\x11\xe7\x8e\x0f\x78\xb8\x7e\x7f\xca\xde\x7e\xf3\x6f\x5f\xcf\xe4\xeb\x16\x65\x08\x0e\x51\x95\xaf\x28\xfe\x02\x54\xa0\x0d\xd7\x85\xc8\x8f\xf3\x65\x74\x8c\x47\xc7\xb1\xf9\xfe\x88\x2a\x3d\x52\xcb\x23\x97\x22\xe1\x88\xd8\xe2\xc7\x9b\xf8\x4d\x17\x32\xb1\x5d\xe1\xfe\xd5\x2e\x3d\x93\x0e\xc5\xbc\x6d\x7e\xf7\x0b\xd6\xca\x16\x42\x45\x84\xb4\x10\x0d\x1a\x0b\x52\x31\xaa\xa5\x4b\xea\x83\x71\xbe\x98\xff\x4b\x2d\x5b\xfe\xf1\x5d\xaa\x16\xfa\x8d\x23\x80\xe5\xda\xd6\xe1\x19\x19\xdb\xe4\x76\x63\xcf\x1d\x72\xfb\xa6\xa1\x78\x49\xb3\x9a\x95\x89\xe1\xb4\x0d\x19\xf8\x76\xa1\xe1\x75\x41\xe4\xa3\xe2\xb9\x2a\xa5\xcd\x9a\xa1\xa4\x50\x4b\x80\x39\xc1\x35\xc9\xa2\x34\xc1\xb3\x00\xd8\x3f\xc7\x3d\x95\x8b\x0c\xb5\x0f\xf0\x81\x75\x0f\xf7\x81\x99\x63\xf6\x8d\xf3\x4b\x64\x8e\x39\x74\xdc\x49\x30\xfe\x4a\x03\x7e\x68\x28\x05\x6e\xa5\x21\x08\x24\xf3\xfe\x5e\xb4\x81\x93\x03\x3e\x73\xb5\x4f\xd2\x90\xf1\x1c\x34\x78\x71\x54\xa8\x23\x20\xed\x03\x2a\x38\xcc\xe5\xd4\x05\x41\x02\x94\xc6\x90\xe3\xde\xbc\xdf\xa3\x9d\x78\x6b\xfb\x14\x34\x94\x14\x56\x8d\x0c\xe8\x04\x49\x4f\xa4\x14\x39\x79\x80\xf7\x6a\x06\x03\x31\x1c\xe1\x54\xee\x46\xa4\x7b\x33\x45\x98\x67\xc7\xc5\x23\xf2\x40\x08\x8c\x19\x5c\x4d\xd6\x6a\xa3\x8c\xae\xab\x4a\x1d\x3c\xc4\xab\x2d\x28\x13\x9d\x8a\xf9\x86\x67\xa8\xaf\xfe\x7a\xbd\x31\x5b\xcb\x3c\x42\x13\x74\xf8\xd2\xa0\xd4\x65\x8b\x6a\xb2\xa6\x3d\xed\x77\x59\x76\x76\xaf\x1b\x40\x08\x6d\xc0\xe5\xb7\xe6\x0f\xc2\xe6\xce\x48\xfe\x66\x2e\xbd\x66\x49\xb9\x6b\xa4\xd3\x40\x10\xd0\x86\x5c\xd4\x21\x7c\xd3\x9e\xba\x9d\x6c\x31\xe5\x66\xe0\x1c\xb8\x20\xab\x3e\x13\xc0\x25\x86\x1d\xd9\x78\xa3\xa3\xd6\x80\xa3\xae\x7d\x09\x76\xb5\xd2\xdc\x4c\x2c\x5f\xfa\xb0\xa6\xde\xb8\x02\x88\x1a\xbd\xd9\x6e\x4f\x37\x09\xd1\x69\x38\xc6\x28\x10\xac\x6e\xd1\x05\x72\x1e\xbe\x19\x21\x71\xdd\x90\xb1\x83\x4a\x70\x71\x36\x46\x30\xd8\x0b\x5d\x03\x38\xcc\xfe\xba\xcb\x9c\xd9\x86\x6f\x47\x86\x5e\x1f\xbd\x6c\x5a\xd9\xb0\x2c\xb8\x0f\x1f\x7c\x72\x64\x80\xff\x2e\x4a\x78\x7e\x71\x79\x1b\x22\x9b\x12\xec\xed\x51\xb4\x16\xd1\x3d\x58\xd3\xf0\xc8\xc3\xcd\x40\xc1\xf8\x00\xb7\xf6\x29\x55\x0b\x65\x81\x32\x5b\x97\x65\xc6\x65\x5a\x52\x39\x8b\x13\x9d\xa5\x7c\x0b\x90\x04\x89\x71\x8a\x1e\xce\xe0\x02\x7c\x8d\x28\xd8\xe7\x4c\xe8\x3f\xd3\x66\x56\x26\xfe\xbb\xa1\x63\xe9\x81\xe7\x7e\x30\x9b\xf2\x80\x69\xb1\xe1\xb2\x48\xa2\x99\xdc\x08\x2e\x43\x04\x2b\x41\x32\xcc\x20\xc7\x4a\x50\xbe\x84\xe5\x52\x44\x85\x27\x5c\x86\x4b\x88\x1b\xa9\x7d\x7b\x70\x58\xdf\xdd\xce\xdb\xd9\xf5\x1f\x6c\xda\xe7\x64\x03\xf8\x68\x5a\x43\x74\x34\x3e\xd1\xd5\x08\x29\x78\xe9\xc8\xb5\x97\x5a\xf8\xcb\xae\x29\xb6\x10\xc5\xa3\x00\x3e\x21\x22\x40\x68\xd3\xf1\x0f\x4e\xc3\x74\x48\xf0\xe0\xc4\xf1\x0f\x12\xbd\x7c\x83\x40\x98\x36\x58\x08\xbc\x74\xc4\x87\xb2\xc6\x60\xf8\x8a\x28\x19\xc0\x14\xf8\x8a\x8c\x9a\xaf\xe0\x98\x36\xb7\xe0\xfc\x41\xc4\x33\x59\xa5\x95\x24\x9d\xd1\x6f\x38\xe6\x13\x8c\x3e\x8f\xb4\xb1\x63\xdc\xcb\xd1\x73\x06\x54\x5a\x9e\x44\xdb\x91\x0e\xec\x48\x78\x8a\x9d\x7e\xc9\x5b\x95\xcd\xb5\xdc\xf7\x32\xec\x73\x90\x52\x02\x41\xca\x37\x5c\x41\xff\xb8\x45\xe9\x48\xf3\x90\x51\xd7\x81\xc5\xc9\x68\xdd\x30\x83\xb7\x95\x31\x93\x96\x4d\x66\x59\xa6\xc8\x92\xde\x15\xb3\x43\x1c\x9a\x36\xf2\xf5\xd7\x8b\x80\x76\x46\x57\x16\xe4\x6c\x75\x20\x9d\x00\xb8\x8f\xb2\xce\xae\x7a\x21\x75\x09\x2a\x85\x4d\xd7\x08\x5e\x89\x95\x28\xe0\x34\x8f\xcb\x14\x01\x9b\xe0\x4e\x01\x3e\x4e\x9e\xa6\x2c\x29\xf4\x4c\x3a\xfa\x50\x0c\xcc\x01\x09\x6b\xfd\x2d\x31\x5d\xb9\xa0\x0a\x28\x16\x1e\x73\x09\x7a\x58\x12\x25\x45\x23\xdc\x61\x1b\xa6\x38\xcb\x32\xc1\x31\x96\x1f\xa7\x6d\x26\xc3\x3b\x57\x7d\x12\x28\xf0\x1d\xb2\xe2\x3f\x47\x0c\xfa\x0e\xc3\xad\xa9\xe2\x49\x28\x1b\xec\x9d\xb9\x70\xd9\xec\xe5\xd8\x5a\xe2\x0f\x22\x54\xb2\xb9\xd5\x14\xda\x3a\x50\xfc\xbd\x15\x62\x7a\xa2\x32\xe5\x39\x06\x33\x2d\xcb\x94\x25\xcb\x20\x11\x3b\xcc\x01\x92\x47\x9a\xe9\x8a\x14\x9c\xd5\xd6\x85\xa2\xf9\x46\x04\xbc\x35\x64\xde\x49\x03\xc4\x0f\x66\xc4\x40\x28\x89\x29\xeb\xcd\x98\xbd\xf3\xf4\xb8\x38\xc3\xb0\x27\x02\xd2\xe9\x44\xa3\xf8\x73\xed\x0d\x28\x17\xa0\x77\xa6\x89\x4a\x9a\x1d\xe9\x76\x5d\xc7\x0c\x42\xf2\x9a\x61\x70\x22\x9b\xba\x68\x37\xc2\xbe\x95\x72\xc5\x7c\x5a\x03\x19\xb9\x0d\xd1\xd1\x40\x7b\x2a\x0c\x6c\x64\x48\xd8\xfd\x84\x86\x3a\x42\xf4\x96\xc6\x6e\x76\xe4\x7d\x87\x79\x1c\xd8\xd4\x20\x8b\xe2\xf0\x86\x06\x2b\x27\x04\x8f\xf5\x19\xd9\x15\x2f\x86\x22\xc9\x5c\xe0\xda\xf0\x86\xb6\xa2\xf6\xfa\x34\x13\xa4\xc7\xc0\x76\x4e\xcc\x37\x4f\x6c\xa8\x2e\x17\x47\x28\xa0\x5d\x3e\x24\x10\x15\x82\x47\xeb\x2a\x87\x84\x65\x7a\x76\x3d\x80\x18\x42\xd8\x8f\xc3\xe9\x2f\x26\x7e\xcd\x41\x22\x49\x66\x9a\x3f\x66\x97\x52\x20\xce\x53\x2d\x83\x43\x85\x1a\x40\x19\x27\x21\xd9\x8e\x93\x72\x0b\xd3\x30\x79\x6f\xa9\xb5\xcc\x96\x1b\x31\xee\x4b\x07\xa9\x87\xcb\x06\xa5\x48\x87\x2e\xd9\x96\x9a\xea\x00\xf5\xb2\x1f\x41\x45\xfb\x9d\x3f\x80\x4b\x0f\x97\x00\x6d\xfd\xe8\x3f\x2d\x3b\xe3\x1e\xdc\x2d\xce\x06\x3b\x54\xd7\x0d\x43\xf0\xf3\xbe\xf1\xbd\x5a\x57\x31\xb3\x03\x12\x44\xde\x5d\xbc\x3b\x7b\x3f\xbd\xa8\xe6\x5f\xfc\xe3\xdd\xd9\x5d\xf5\x97\xeb\xbb\x8b\x8b\xe9\xc5\xf7\xe1\x4f\x37\x77\xa7\xa7\x67\x67\xef\xaa\xef\xbd\x9f\x4c\xcf\x6b\xef\x99\x9f\xaa\x2f\x4d\xbe\xbb\xbc\xae\xe5\x91\x6c\x49\x02\x79\x3b\xfd\x70\xf6\x6e\x7e\x79\x57\x49\x45\xf9\xee\x3f\x2e\x26\x1f\xa6\xa7\xf3\x96\xf6\x5c\x9f\x9d\x5e\xfe\x74\x76\xbd\x27\x61\xa4\xef\x6f\xeb\x90\x3e\x07\xb6\xf0\xc9\x79\x45\x27\x6c\x99\x27\x42\xc6\xe9\x16\x23\x45\xec\xcd\xb6\x06\xfd\x0e\xcf\xde\x64\x23\x54\x79\x48\xc0\xc7\xed\x5a\x30\xf5\x20\x72\x60\x01\xc3\xd2\x88\x32\xc4\x33\x0e\xd4\x6b\xcd\x45\x91\x37\xbd\x02\x3b\xa3\xea\x8a\x7c\xeb\xe2\x36\x77\x35\xc7\x33\x48\x52\x25\x2c\x13\xf9\xae\xb6\x80\x66\x94\x97\x59\x91\x2c\xba\x43\x78\x06\x07\xde\xf7\xbd\x7b\x23\xdf\x71\x3b\x39\xdc\x45\xbb\x60\xac\x44\xb2\x1c\x02\x93\x87\x12\x9e\x9a\x2e\xd7\x7d\x6d\xa1\xc5\x59\xb9\x48\x93\x88\x25\x71\xdd\x9e\x42\x7c\x18\x60\x32\xae\xd3\xa2\x67\x22\x07\x55\xd5\xdc\x00\xb2\x5c\x1c\xf1\xb2\x58\x23\x85\x27\x05\xce\x50\x12\x9b\x99\xd4\x22\xca\x05\xfa\x02\x84\x06\x23\x2d\xa6\x43\x0d\x6a\x82\xc6\x10\x83\x4d\x0c\x64\x79\xe3\x20\x45\x4d\x87\x8f\x00\xbf\xc4\xd2\x07\x18\x49\xf1\xfd\x9d\x43\x43\x2d\x4e\x30\xe1\x6a\x00\x0b\x83\x13\x1e\x1f\xda\xa4\xaa\xa6\xdf\x46\x52\xbb\xa4\xa2\x38\xc9\x36\xd2\xa8\xbd\x1b\xfb\xd6\x58\xb8\x50\xaa\xa1\x37\x54\x3a\x3d\x3a\xcd\x05\x1c\x22\x04\x69\xb0\xf6\x0b\xc0\x35\x51\x64\x12\x04\x24\x99\xab\xda\x42\xac\x79\xba\x44\x8d\xc3\x4c\x4d\x3b\xab\x08\x96\x7f\xab\xee\x85\xbc\xc6\x09\xfb\x55\xc4\xa1\xc4\x9b\x8f\xe7\x34\x72\x16\x21\x6f\xc2\x34\x6d\xb4\xab\xca\xc6\x85\x82\x32\x55\xe0\x3d\x21\x78\x8c\x01\x48\x3e\x63\x81\x0d\x29\x5d\x2e\x93\x4f\xa6\xc0\x99\x14\xad\x9c\xed\x00\x26\xb3\xec\x92\x4e\x2e\x03\x70\x0e\x29\xfa\xee\x85\x84\x7c\xaa\x40\x0e\xb8\x7f\xcd\x0e\xb3\x9f\x37\xe7\x62\x87\x41\x1f\x6c\x7e\x49\x25\xcd\x6c\xe8\xe5\xb1\xe3\x54\x60\x44\x98\xe3\xe0\x80\x75\x73\x7a\x3e\x3d\xbb\xb8\x9d\x9f\x5e\x9f\xbd\x3b\xbb\xb8\x9d\x4e\xce\x6f\xfa\x6e\xbf\xe7\x88\xe2\xab\xed\xbe\x7a\x30\x9b\x93\x10\xc7\xb4\xf3\x7c\x28\xbb\xeb\x94\xdf\x76\x30\x25\xfb\x5b\x9f\xc4\xd9\x3c\x4e\x74\x64\x8e\xbf\xed\x5c\xc8\x18\x92\x5d\x3c\x69\xa9\xb6\x17\x55\xef\x85\x7b\x83\xb9\x37\xac\x04\xc1\xd3\xee\xc1\xae\x68\xf7\x1c\x20\x99\x60\x86\xcc\x85\xd9\xfc\x71\x85\x63\x64\xbc\x3f\xc3\x99\x29\xee\xb0\xbe\x55\x8b\xa8\xf7\x09\xdb\x9b\x68\x5d\x02\x95\x89\x7d\x0d\xf0\xa8\x1d\xa3\x42\x0c\xc4\x61\xc6\x8d\x24\xc8\x42\xcf\x12\x3d\x93\x1b\x2e\x63\x5e\xa8\x7c\xdb\xd1\xc5\x7e\xc2\x33\xdc\x36\x55\x11\x1a\x1e\xd9\x52\x88\xd8\xce\x02\xbe\xca\x65\x7d\x29\x61\x5e\x8e\xdb\xcb\x1f\xcf\x2e\x6e\xe6\x67\x17\x3f\xcd\xaf\xae\xcf\xde\x4f\xff\xe4\x60\xb2\x19\xd7\x6d\xc9\xa5\xb3\x5c\x18\xe9\x62\x69\xce\x5a\xe5\x0b\xa6\x6c\xb6\xe5\x50\x9a\xce\x64\x39\x93\x56\xb2\xe4\xbe\xf8\x75\xae\xca\xd5\xba\xbd\xa0\x7a\x2b\xaf\x26\xb7\x3f\x3c\xa9\x99\x40\x42\x89\x79\x5d\x71\xb7\x35\xe1\xc2\xc9\x92\xe4\x1e\x62\x8c\x6b\xcd\x03\x2a\x55\x78\xb5\xcd\xcb\xd0\x21\xd1\x9e\x74\x7b\x69\x0a\xad\x9d\xca\x7f\xcb\xeb\x5d\x0b\xe8\x36\x90\x9b\x95\x63\x04\xe0\xeb\x98\x1c\xbc\x51\xda\x49\xcb\x6f\x95\x13\xec\xab\xa3\x54\xac\x56\x22\xc6\xe5\x55\x2f\x98\x6c\x70\x24\x02\x23\x7f\xae\xb7\x8d\x22\x25\xf0\x3d\xe0\x60\x76\x78\xaf\xfe\x02\xfc\xca\x7d\xd2\x2e\x2b\x4e\x89\x48\x0a\xfc\x9b\x05\x97\x1d\x8e\xe4\xfd\xf1\x60\xed\xc5\x5f\xe6\xcc\x85\xea\x91\xc1\xc4\xba\x0c\xfc\x3e\xe8\x02\xbc\x1c\x8e\x6f\x75\xed\xb8\x16\x59\xca\x23\xe1\x02\x5c\x90\x01\x18\xee\xf5\x4f\x71\xe0\x51\x9a\x64\x49\xf6\x96\x20\x7d\xb2\xcf\x0c\xd7\xb6\x04\xc0\x72\x7b\x6d\xe5\xf1\xcb\x9b\x56\x76\x5e\xdc\x88\xf7\x13\x0c\xcd\x98\xa7\x92\xe2\x22\xd0\x16\x05\xc9\x5f\x3b\x31\xeb\x83\x96\x43\xad\xe6\x9f\x68\xe2\xf1\xce\x5c\x35\x74\x73\xcb\xac\xeb\x96\x87\x53\x1d\x77\xd9\x0b\x8b\x22\xdf\x49\xc6\xfd\x1c\xee\x88\xab\x5c\x6d\x12\x2d\x26\x45\x91\x27\x8b\x32\xcc\x46\x3c\x10\x30\x57\xb9\x9c\xf8\x0e\x67\xb9\x8a\xcb\xc8\xd2\x67\x41\x6f\x3d\xec\x87\xac\x7c\x56\xeb\x88\xd9\x91\x59\x7d\x74\x73\x13\xf1\x11\x44\x7b\x20\xbf\x5b\x9b\x8f\xcd\x0a\xc6\x0e\xdb\xdf\x95\x3d\xca\x9f\x39\x66\xb4\x7b\x30\xed\x1a\xe8\x17\x06\xce\xec\xeb\xa0\x01\x77\xa0\xa6\x68\xb9\x2c\x38\x3a\xd0\xab\x3a\x4a\x17\x5b\x8e\x3b\x6a\x86\x81\xbb\xfa\x61\x63\xaa\xe1\x54\xa8\x37\xac\xb9\x46\x75\xbe\x88\xd6\xd5\x86\x43\x6f\xaa\xac\xc1\xf5\xe6\x3a\xf5\xf8\x30\xb3\x49\x2f\x37\xda\x08\x0d\x0d\x09\x19\xb6\x2b\x19\x60\x5d\x3a\xeb\x4e\xfb\x3d\x86\x5c\xcc\x7f\x29\xc5\x90\xac\xce\x36\x54\xe3\x8f\xf0\xd9\x5e\x40\x4a\x82\xd8\x2d\x67\x7b\x2d\x92\x8d\xd1\x80\x78\x1e\xad\xd9\x82\x6b\xa2\x23\x0c\xd9\x12\x30\xfd\x3c\x4b\xcc\x57\x3c\x2a\x28\x1d\xaf\xad\xd6\xa6\xe4\xbd\xb5\x50\x48\xa3\xd6\x7a\xab\x47\xdb\x72\xdb\x37\x00\x43\xac\xd7\xb6\x19\xd3\x77\x83\x7c\x08\xa1\x1e\xee\xee\xc9\x78\xc4\xc2\xe9\x94\xf2\x52\x46\x6b\x96\xa5\x1c\x09\x25\xd6\x5c\xa3\xa0\xb0\x08\x1d\xbe\x48\xd2\xa4\x00\x9e\x30\x74\x1c\xd7\xd6\xad\xb9\x3c\xf3\xfc\xde\xa6\x5b\xe0\x9e\x14\x6e\x97\x28\x39\x10\x09\xed\x7a\xf5\x59\xb1\xd0\x5e\x10\x86\xc2\xbd\xdf\x66\x27\x1c\xb4\x9f\x0e\x73\xbc\xc1\x66\xf7\x7d\x19\xe6\x1d\xa2\x12\xaf\xea\x9f\xd7\xc6\x1b\x09\x28\x0f\x22\x09\xde\x19\x97\xf5\x22\xa0\x73\x1f\x55\xb6\xfb\x18\x6d\x76\xb8\x45\x09\x1e\x0e\x7c\xa2\xc4\x49\x03\x94\x98\x7a\x5a\xa5\xd6\x7d\xbf\x4c\x15\x2f\x76\x47\xb9\x61\x96\xa4\xae\xb2\x63\x55\x2e\xba\xf2\x72\x60\xab\x9e\x1e\x43\x67\xc5\xff\x73\xd9\xdc\xc3\x73\x94\x17\xc2\x48\xdf\xa7\x0d\xa8\xf9\xfa\x08\x3e\x6f\x2f\x9c\xa2\x98\x07\x33\x52\xb8\x65\xe0\x73\xf5\x39\xdd\x1f\x20\xa9\x2d\xdb\xa9\xae\xe4\x1d\x14\xf3\x78\xd8\x7c\x25\x72\xcf\x52\xda\x9f\xfe\xeb\xeb\xaf\xfa\x44\x23\xfe\xb1\xe4\xe6\x00\xb8\x5c\xde\x20\x41\xd8\x21\x9d\x2e\x92\xe6\xb6\x6a\x17\x03\xf5\x5a\x6f\xab\x5e\xda\x70\xe1\xf7\x66\x3b\x68\xeb\xcd\x8d\xf9\xba\xbf\xd8\x9d\x56\xac\xb1\x59\x9e\x28\x20\xca\x52\xcb\x8a\xae\xd1\x22\x89\x5b\xeb\x3d\x60\x24\x7f\x29\x45\x29\xcc\x02\x5a\x94\xf1\xaa\xe9\x2c\x19\x70\xe1\xf2\x5d\x5a\xab\x47\xb6\x29\xa3\x35\xb3\x85\xb3\x58\xa4\x7c\x5b\x55\xa3\xcc\x5d\xa3\x50\x40\xa1\x3c\x88\x2f\x30\x20\xbe\x8f\x4a\x5d\xa8\x0d\xe0\xd4\x7d\xb9\x79\x29\x61\x97\x33\x6e\x77\x57\xdb\x81\x56\x21\xf4\x7c\xa2\x87\xfc\xe6\xea\xec\x74\xfa\x7e\x5a\x73\x4f\x4f\x6e\x7e\x0c\xff\xfe\xf9\xf2\xfa\xc7\xf7\xe7\x97\x3f\x87\xbf\x9d\x4f\xee\x2e\x4e\x7f\x98\x5f\x9d\x4f\x2e\x2a\x4e\xec\xc9\xed\xe4\xe6\xec\x76\x8f\x9f\xba\x59\x6b\xf7\x44\xf0\x80\x6f\xd4\x22\xe7\x6d\x32\x1d\x6b\xae\xa2\x5a\x4f\xd8\xc4\xb2\xaf\x56\xf8\x81\x2d\xd6\x00\xc0\x49\x29\x62\x2c\x11\x92\xf0\x8e\x17\xfc\x94\x17\x3c\x55\xab\x31\x9b\x30\x8a\x2b\xc0\x78\x11\x6d\x54\x42\xa2\xa6\x34\xb3\x83\x45\x18\xbd\x30\xf2\xa6\x20\x9f\x2d\x5c\x2d\x89\x14\x36\x15\x61\x5e\x29\x1b\xe4\x39\x93\x67\x0f\x42\x16\x25\x28\xda\x3c\x4d\x19\x55\x6b\x5f\x08\x58\x41\x6c\x2b\x75\xb2\x49\x52\x9e\xfb\xc4\xce\x97\x54\x16\x5c\x76\x6d\x5b\x1d\x2b\x5d\x93\x72\xc2\xda\x03\xee\xa6\x0c\xda\x7d\x7a\x3e\x05\x45\x37\x2a\x6c\xd6\x42\x5b\xf9\x4c\x22\xe9\x28\xd5\xb8\xe1\x10\xc3\x54\x28\x32\xd0\x63\xf5\xf4\x72\xf7\x42\x3c\x48\xb1\xb2\xae\xac\x97\x32\x4c\xb8\x46\xda\x7f\x9c\xc9\x22\xdf\xf6\xd6\x5e\x6f\x81\xd1\x41\xc3\xbd\x8e\x20\x91\xd5\x64\xcf\x68\x3f\x65\xb6\xf4\x0b\x50\x69\x2d\x5e\x97\xdc\x7b\xce\x8b\x87\xf0\xa8\x8e\x2b\x51\x6a\x4e\xde\xdf\xea\x38\x84\x2c\x60\x30\x0a\x0b\x55\xca\x58\x13\x78\x73\x93\xc8\xe3\x0d\xff\xf4\xc6\xf6\x14\x49\x6c\x5c\xca\x35\x60\x4c\x14\xa9\xb9\x0f\x6e\x8d\x90\xdb\x3d\x5c\x33\xb9\x63\xbc\xf6\xdf\x09\xac\x64\x05\x93\x81\xb7\xef\x20\x0c\xf5\x41\x6c\xdb\xe6\xaf\x91\x36\x93\x85\xb9\x1f\xa0\x90\x2c\x17\xe6\x45\x87\x71\x4d\x11\xba\xec\xfe\x86\x58\x96\x4a\x6a\xef\x76\xd9\x1d\xc2\x46\x0e\xda\x36\xad\x80\x95\xfe\x8a\x4f\xef\xbc\xa7\x54\x93\x99\x33\x84\xaf\x58\xcf\x09\xc5\xee\x90\x5f\xde\x4c\xd6\x5f\xd5\x82\x2d\x21\x90\x8d\xec\x04\xb9\x00\x4f\x19\x4c\x85\x4d\xd4\x03\xbc\x7a\x0d\x4c\x8c\x5d\x02\xa9\xd0\xe0\x3f\x92\xe6\x52\x2d\x7e\x29\x09\x02\xf0\xf6\xcb\x61\xe7\x6c\x81\xd9\x1e\x90\xde\xbb\x9e\x07\xc1\x9d\xe5\xd0\xae\x52\x26\x6d\x64\x9b\xd7\xa5\x34\x47\xf1\x73\xa0\xa7\xfa\xbb\xc7\x6b\x95\xd2\x9f\x7b\x63\xcd\xac\x67\x27\xc7\xf7\x5f\x8c\xb9\xf9\xa7\x1a\x61\x33\x55\x07\x91\x0d\x54\x7a\x78\xa0\x2d\x78\x74\xff\xc8\xf3\x18\xcd\xff\x00\x67\x1a\xb3\x1f\xd4\xa3\x78\x10\xf9\x88\x45\x22\x2f\x38\xf1\x15\x6a\xc0\x73\xc0\x86\xa2\x72\x66\x12\x02\x7d\x90\xfc\x51\xea\x32\x17\xac\x48\x56\xeb\x42\xe4\x21\x1a\x47\xe5\x46\x1c\x15\x48\x55\x9b\x89\x88\x08\xd9\x3a\x06\x60\x99\xf2\x87\x26\x01\xe3\x53\x98\x64\xd8\xd4\x45\x2b\x5b\x77\xb7\x4d\x7e\xb6\x0b\x3f\x45\x03\x46\x42\x13\x29\xb4\x46\x6c\xa5\x52\x2e\x57\xe3\xf1\x18\x12\x7d\xbc\x19\xb4\xd0\xa9\xc0\xd0\x81\xee\x50\xfa\xa9\x52\x5a\xa4\x5b\x47\x22\xe6\xe2\xa8\x00\xb8\xfb\xa9\x10\x52\x27\x68\xd8\x6a\x59\xfe\x37\x75\xe7\xd2\xe7\xf5\xc5\xb5\x5f\xcf\x07\x47\xe9\x76\x94\x03\xb9\x54\x07\x94\x84\xef\xb7\xdf\xbc\x9e\x14\x75\xde\x5e\x96\x54\x72\x68\x28\xf5\x4f\x2a\xe9\x80\x82\x3c\x89\x6c\xb4\xb5\x24\x22\x42\x7a\x52\xf8\x69\xfb\x98\x35\x22\x82\x0f\x08\x06\xde\x11\xd7\x3b\x30\xa4\xb7\x8f\x21\xe0\xa6\x3e\xdd\x83\xb7\xc5\xfe\xf4\x6e\xad\x1d\x1a\x18\x32\xed\xb9\x0d\x86\xa8\x4e\x18\x75\x99\x6e\xe1\xc6\xe5\x02\xa8\xc1\x3d\x10\x07\x5e\xa5\x8a\xd3\x0c\x42\xf9\xbc\xd7\xcd\x11\xd4\x05\x4e\x36\x5d\xa8\x9c\xaf\x04\xdb\x88\x38\x29\x37\xad\xc2\xc6\x35\xf7\x10\xf8\xa8\x4a\xcb\x4d\x37\x55\xe8\xa1\x0a\xb4\x6f\x24\xfe\xeb\x14\xaa\xeb\xcf\xa1\xe3\x22\x23\x6c\x96\x4d\x6a\x2f\xba\x90\x68\xac\xcd\x49\x99\x27\x1a\x58\x76\x9f\x12\x39\xeb\x8a\xc1\xa2\xc1\x01\xbf\xcd\xd0\xc8\x5e\x99\xdd\x23\xeb\x19\xa5\x4f\x34\xce\x2a\x78\xed\xbb\x0f\x85\x3a\x28\x75\x78\xae\xbd\x5c\x95\x0d\xee\xa9\x5e\x40\x09\x50\x1b\x83\xcc\x1b\x84\x9a\x83\x02\x09\xda\x53\x28\xb6\xb4\xb1\x98\xf7\x22\xa0\x3e\x8c\x21\x27\xc7\x23\x52\x3e\xfd\xf8\x8d\xb6\x20\x20\xc2\x69\x79\x8d\xa5\xf0\x95\xa0\x07\xe8\xe1\xad\x85\xe7\x61\x0f\xb1\x08\x20\x28\x8c\xb9\x2c\x5a\x0b\xf0\xe8\x55\x28\x0b\x3f\xf9\x89\x97\x69\xfb\xeb\x54\x3e\xbc\x8a\x39\x5b\x27\x3f\xdf\x30\x1c\x6a\xca\x9f\x90\xef\x6a\x68\x50\xc8\x7e\x80\x20\x0c\xd7\xfc\x09\x9a\x60\x65\x1e\x70\xd0\x6d\xfa\x0e\x33\xec\xa2\x88\xd6\x5e\xf3\x00\x82\x46\x47\x2c\x49\x09\xb9\xa9\x9f\x1b\x9f\x11\x02\xb1\xd7\x21\x88\x35\x59\x49\x15\xa6\x52\x52\x52\x80\x2b\xce\x08\x20\x15\x16\xcb\x92\x62\x3f\x52\x70\x20\x2b\xe1\xbe\xa5\x56\x28\x44\x80\x51\x3f\x2b\x7e\x6a\xb8\x52\x24\x48\x57\x65\x61\xd6\x78\x27\xa2\xfc\xce\xf5\x4c\x01\x55\x02\x90\x99\xac\x56\xd5\x18\x24\x0b\xe5\x4b\x72\x81\x04\xdf\xda\x68\x6f\x45\xf2\x60\x36\x6a\x73\x59\xbb\x05\x0a\x12\xa0\xb9\xf6\xc8\x6d\xcb\x02\x96\xf0\x7b\xb1\xd5\x61\x32\x69\x5a\x51\xac\x6b\x41\x26\xa6\x3f\x34\x5f\xfb\xa7\x02\x06\x6e\x9e\xfb\x94\x90\xfd\xce\x32\xac\xf4\x83\xf9\x78\x07\x46\xb8\x51\xb8\x59\x83\x3e\xd8\xd5\xdb\x14\x49\x4c\xf8\x71\xa6\x39\xf4\x30\x40\x00\x79\x86\x30\xce\x30\x72\x09\x2e\xbe\xe6\x7e\x3b\x93\x94\x48\x20\x38\xe4\x8c\xc0\x69\x4e\x1b\x45\xe0\x23\x7d\xf9\xb6\xc2\x1e\x04\xd4\xaa\x96\x66\xb6\x5a\xa5\xf5\x2e\x43\x5e\x3e\x58\x1e\x50\x35\xc6\x28\x5b\x1b\x5e\x6b\x85\x4f\xc4\x96\xd2\xe4\x76\xe2\x49\x83\x40\x40\x7c\x93\xd8\x45\x31\x2b\x39\xde\x7e\x22\x61\x86\x6f\x22\x5b\xa1\x9c\x16\xc8\x79\x73\x76\x7a\x7d\x76\xfb\xd9\xf0\xa6\x16\xec\x39\x18\x70\x6a\xdb\xf9\xee\xec\xfd\xe4\xee\xfc\x76\xfe\x6e\x7a\xfd\x12\x88\x53\x7a\xf4\x04\xc8\xe9\x0d\xe5\x27\x39\x55\xb2\x10\x9f\x0e\x3a\x93\xf3\x52\xce\xf9\x80\xd0\x27\x97\xa1\x68\x97\xba\x83\x85\x36\xf3\xab\xb8\xe4\x27\xc4\x6d\x4b\xa8\x13\x9b\x4e\x65\xe9\x8d\x86\xcb\x24\x4d\x21\x12\xdc\x99\xd7\x29\xca\xd0\x0c\x2a\xc8\x1f\x4b\xe7\x4b\x32\x75\x26\x17\x95\xf4\x37\x60\xf2\x5b\x9b\x4b\x30\xc6\x80\x67\x66\x00\xf2\x04\x22\x6c\x77\xa5\x60\x59\x25\x52\xf8\x66\xc0\xac\x99\xf6\x75\xd2\xd4\xd3\x24\xbe\x24\xb2\x8e\x14\xaf\xbe\xba\xa6\x5d\x71\x95\xf5\x69\xd5\x4f\xfb\xd0\xf5\x10\x37\x71\x22\x51\x31\xad\xec\xe6\x9b\xf6\xa5\x7b\xec\xb7\x00\x8c\xbb\x99\x49\x0e\x3e\x08\x5d\xf0\xbc\xf0\x13\x49\x13\x81\x89\xe1\xbc\x73\xe2\x3e\x41\x04\x9a\x5a\xd6\xc6\xd9\x88\x42\x33\xd6\x09\x78\x2a\x38\x91\xdb\x44\x69\xa9\x0b\x91\x93\xd9\x64\xf2\xf3\xcd\x4c\x7e\x67\x8e\xaf\x37\x74\x0a\x51\xfa\x2e\xac\x02\x91\x3a\xaa\x52\xbf\xd5\x50\x42\x09\xf6\x1a\x6d\xd4\x1b\xc1\xa5\x66\xb0\x35\xd2\x54\xe4\x7e\x65\x60\x7b\x84\x88\x29\x89\x36\x50\x3d\xfb\xef\xdf\x30\x02\xb7\x9a\xa1\x30\xed\x75\x69\xc4\x36\xaa\x68\xae\xa7\x2e\xa2\x01\x40\x9c\xbf\xe4\xca\x69\x09\x7c\xea\xbb\x8a\x08\xac\xdf\xba\x88\xaa\x61\x48\xbd\xd6\xd2\x2d\x16\xf7\x8f\xa5\xf4\x8c\x4b\xa9\xc7\xb9\x1e\x9e\x12\x6c\xad\x8c\x00\x75\xb9\xad\xbc\x9b\xd9\x11\x9d\xa4\x80\x72\x33\xc3\xd8\x7a\xea\xd4\xb2\xcb\x1e\x82\xfd\x80\xa2\x0e\x43\x68\x4f\x5a\x18\x95\x7c\x1a\x43\xeb\xdb\xd9\x99\xb8\xf6\x65\x98\x0b\x27\x16\xab\x2a\x55\x61\x39\x48\x1c\x3c\x94\xb0\xae\xe6\x05\x47\x7e\xb3\xb3\x8d\x44\x28\x63\xb5\x94\xf9\x81\xc9\x1f\x6f\x43\x4c\x6d\x25\x2a\x1b\x5b\x11\xf2\x39\x58\x0e\x07\xc7\x01\x33\x64\xf1\x3d\x3d\xbd\x70\x75\xcd\x39\x3e\xd1\x27\x81\x1d\x2e\x2e\x2f\xce\x42\xa8\xc2\xf4\xe2\xf6\xec\xfb\xb3\xeb\x4a\x3c\xff\xf9\xe5\xa4\x12\x93\x7f\x73\x7b\x5d\x0b\xc5\xff\xee\xf2\xf2\xfc\xac\x81\x79\x38\xbb\x9d\x7e\xa8\x14\xfe\xee\xee\x7a\x72\x3b\xbd\xac\xbc\xf7\xdd\xf4\x62\x72\xfd\x1f\xe1\x2f\x67\xd7\xd7\x97\xd7\xb5\xfa\xee\x4e\x77\xa3\x27\x2a\xdd\x68\x37\xff\x78\xe7\x6c\x40\xad\xda\xba\x8d\xab\xe9\x97\x0f\xd8\xc5\x3d\x91\x67\xfb\x96\xa3\x0d\xd7\x8f\xc3\x74\x1c\xb8\x31\x4c\x53\x07\xad\xba\xe7\xcf\x17\x5d\x19\xba\x8c\x1f\x26\xf6\xcc\xa9\x36\x7f\x0e\x24\xe0\x4e\x05\xd0\xd5\x52\x33\xdc\x52\x7a\x76\x1c\xda\x0c\x3c\x58\x2b\xde\x99\xaf\x4c\xc6\x2f\xde\x52\x5b\xc7\xbe\x76\x7a\x2a\xaf\x3d\x8c\x48\xcf\xc5\x86\xb2\xab\xd1\x41\x65\x96\x6c\x20\x89\xad\xa2\x60\x1f\x86\xb0\x7b\xd3\x0d\xb3\x72\x82\xe5\xd8\x95\xd8\xb7\x3d\x6c\x69\x37\xfb\xde\xd0\xf6\x53\x25\xcd\xb6\xd7\xa8\x5a\x06\xb4\x1b\x28\xb3\x86\xb4\xfb\x96\xeb\xfb\xa1\xed\xa6\x4a\x9a\xed\x06\xb5\xef\x49\xed\x06\x83\x77\xd1\x4e\xa3\x33\x40\x88\x85\xc5\x54\x9b\xe7\x62\xfc\xdd\x2b\x41\xfe\xec\x7e\x6d\x34\x1b\xe0\x65\xaf\x97\x19\xef\xef\xc8\x80\xd6\xb8\xed\xca\x6b\xac\xf2\x37\xf0\x14\x7a\xb8\xc8\x05\xbf\x8f\xd5\x23\xcd\x47\x1d\x19\xca\x7a\x49\xf3\xea\x00\x19\x19\x6e\x8f\x88\x22\x27\x0f\x14\xa2\xd4\x7c\xf1\x00\x93\x4b\x88\x17\x1d\x75\xb0\x20\xf5\x72\x9d\x88\x08\xa8\x9f\xa4\x9f\x9d\x99\x44\x6d\xbe\x2d\x7d\xb3\x99\x55\xd3\x22\xa2\x0e\x81\xae\x3a\x1d\x1a\x9d\xeb\x3a\x98\x58\x8a\x03\x2a\x73\x00\xd3\x2d\x72\xb8\x33\xc1\x80\x24\x12\x8c\xc9\xb9\xb9\xf0\xe4\x22\x4a\xb4\x08\x32\xc6\xb5\x9e\xd8\xbf\x1c\x96\x0a\xa5\xe0\x45\xab\xd9\xb5\xb7\x3d\x9c\x47\x45\xc9\x53\x06\xe1\x4a\xc4\xc0\x88\xb6\x4a\xfc\x25\xe2\x12\x43\x63\x0a\xb1\xc9\x20\xaa\x3f\x8c\xe9\x98\xc9\x9f\x01\x28\x81\x53\xf0\x4a\xb3\xef\x01\xf2\x60\x5f\xa6\x43\x78\xc3\x0b\x38\x8b\xff\x88\x75\xb8\x67\xe3\x99\xac\x64\x60\x0a\xbe\xaa\x24\x63\x1a\xcf\xa4\xcd\xd6\x11\xab\x48\x8f\xe1\xc6\x37\x56\xf9\xea\x98\x72\xa9\x9b\xc5\xae\xee\x17\x4a\xdd\x1f\x0b\x79\x0c\x36\xa9\xe2\x98\x97\x85\x3a\x06\xb8\x14\xce\xbf\x3e\xb6\x49\x8f\x6d\xd6\x68\x7d\xbc\x4e\x1e\x04\xfc\xdf\x78\x5d\x6c\xd2\x7f\xd1\xd9\xfa\xd3\xd1\x2a\xcd\x8f\xcc\xb7\x47\xe1\xb7\x47\xf6\xdb\x23\xfb\xed\x91\xf9\x0c\xff\x2f\xdb\xa2\x7b\x47\x7c\xe2\xe6\x2c\x1b\xcd\x64\x22\xb5\xc8\x0b\xd0\x7e\x1e\xf3\xa4\xf0\xa9\xae\xb6\xec\xd5\x7f\xfe\x27\x1b\xe7\xfc\x11\x23\x62\xdf\xf1\x82\x5f\xa1\x7d\xf1\xef\x7f\x7f\x05\x0e\x55\x8c\x62\xca\x78\xfe\x4b\x29\x8a\x99\xd4\xc2\x6c\x42\xf6\xbf\x66\x12\x3c\xb0\x9b\xed\xbc\x40\xbb\x2b\xda\x20\x63\xcd\xbe\xc5\x32\xa7\xc8\x46\x1a\x6b\x53\x52\x47\x38\x41\xc2\xd3\x96\x2c\xfd\x1d\x26\xfa\x5f\xd2\x77\xf4\xfe\x80\x6d\xfd\x4b\x5a\xdd\xd5\x36\xd9\x92\xfe\x25\x85\x03\x34\x55\xdc\x82\xb5\x98\x5b\xbc\x70\x4f\xa6\xc6\xb5\xed\x91\x06\x34\xe0\x45\xdd\xf4\xed\x7b\xe5\x06\x19\xd1\xad\xe5\xbe\x21\x46\xc0\x57\xe0\xfd\x10\xe0\x3d\x4f\xcc\x0e\xb9\x41\x4b\x28\x68\x6e\xd8\x73\xd0\x49\xc9\x75\xee\xca\x43\xc3\x85\xfe\xfa\xe4\xf8\x78\xc4\x56\x1a\xfe\xb3\xf8\x05\xfe\x03\xe8\xa1\xe7\x22\xf5\x6d\x0c\xa6\x03\xc2\x35\x67\x79\xff\x4c\x3c\x07\x8a\xee\x73\xf0\xc8\xd7\x96\xe9\x77\xa5\x8c\x53\xe1\x43\x1b\x2b\x2e\x91\x54\x99\x99\xb4\x13\xd5\xcc\x3c\x04\x73\xbc\x10\x11\x37\x82\xaf\x51\x37\x82\x4b\xd5\xb2\x10\x12\xad\x61\xb9\xcf\xf6\xc8\xd1\x72\x05\x6a\x31\x40\x21\x79\x41\x90\x73\x01\x3f\x42\x25\x40\xcc\x3e\xaa\x3f\x62\x5b\x55\x12\xc7\x38\x30\xe7\xc6\x22\x4a\x21\x91\x83\x65\x0f\x62\xb9\x28\xca\x5c\x32\xce\x32\x2e\x63\xae\x61\x05\x2e\x73\xf0\x76\xe6\x8c\x37\x1b\x3a\x42\x38\xae\x2a\x0b\xe0\xc4\x42\x64\x41\x38\x12\x48\x02\x1f\xb4\x79\x14\x34\x02\xcf\x04\xe0\xa2\x6e\x7c\x38\x9e\x49\x9b\x8f\x90\xb0\x70\x68\x29\x8b\x54\xb6\x25\xc6\xa3\xfa\xa0\x27\xd6\x72\x46\xc3\x3d\xf2\x78\x93\xfa\xbb\x23\x96\x54\x5d\x6b\xc0\x37\x5f\x04\x29\xde\x6d\x92\xfc\xd7\x42\x46\x2a\x16\xb9\x7e\x63\xb6\x61\xe2\xee\x1d\xa8\x3f\x24\xda\x4f\x06\x48\x29\x73\xb8\x91\xb5\xd0\x14\xef\x12\x4c\x99\xd1\xa9\x30\x94\xb7\xe9\x39\xfb\xb7\xca\x6f\x1d\x05\xd3\xd6\x5e\xfa\xe7\x67\x45\xc4\x84\xb8\x4e\x7b\xe7\x7c\xba\x09\x02\xb7\x6c\x28\x71\xb1\x50\xd4\x71\x48\x39\xb1\xf9\xb4\x93\x02\x32\x64\xe6\x42\x17\x33\x49\x27\xf0\x88\x2d\x05\x37\x7a\xde\x88\x45\xfa\x01\x85\x31\x1e\xf7\xc5\xa3\xf2\x18\x1c\x9b\xde\x06\xc0\xb0\x95\xc2\xbd\x91\x18\x5f\xe3\x14\x81\x8d\x00\x83\xae\x1b\xba\x53\x55\x60\xb0\x5a\x05\xe2\x13\xc6\xc1\x66\x4b\xa9\x67\x58\x0b\x93\xf5\xc0\x48\x6c\xd1\x51\xcc\xea\xed\xc0\x07\x46\xf0\x60\xef\x10\x06\x12\x08\x47\xd0\xb8\x09\x4b\x8b\xfb\xcc\xfb\x70\x43\xca\x7a\xb0\xcd\x74\x6d\xaa\x1d\x03\x01\x0d\x78\x9a\xdd\xc2\x7c\xba\xd7\x60\xa5\x45\x6e\x53\xb9\x60\x5f\x91\x60\x72\x9d\xe4\xf1\x51\xc6\xf3\x62\x6b\x97\x6f\x9a\x2c\x20\x03\x44\x9a\xdc\x0b\x36\xc9\x73\xf5\xf8\xdc\xa3\xd0\x29\x5a\xba\x6e\xd8\x87\x20\xd9\x87\xde\xf2\x5b\xe9\x65\xeb\xe6\x8e\xa7\x51\xd9\x76\x19\x3e\x5a\xeb\xc9\x45\x91\x6f\xe7\x66\x21\x6e\xb2\x4e\x49\xd1\x2b\x68\xa2\xbf\x92\x3b\x8c\x25\xb7\x66\xc2\xe8\x64\xc9\xad\xcc\xea\x6f\x87\x25\xb7\x85\x00\xb7\xc9\x92\x3b\xbd\x98\xde\x4e\x27\xe7\xd3\xff\x53\x2b\xf1\xe7\xc9\xf4\x76\x7a\xf1\xfd\xfc\xfd\xe5\xf5\xfc\xfa\xec\xe6\xf2\xee\xfa\xf4\x6c\x37\xed\x55\xb3\xf5\x5e\x05\x3f\x62\x61\x3d\x27\xec\x36\x00\x6a\x60\xb0\x01\xe9\xdf\x94\x1f\x17\x56\x95\xd9\xcc\x89\x5c\x8d\x60\xa3\x9e\xb0\xb3\x3c\x9f\x6e\xf8\x4a\x5c\x95\x69\x0a\x70\x2a\x8c\xec\x39\xcd\x05\x5c\x3c\x47\xec\x4a\xc5\xd3\xe0\x3b\x08\x47\x6c\xed\x06\xd4\xcf\xe3\x38\x17\x5a\x63\xf5\x23\xaa\x3f\x00\x0f\xb9\x50\x47\x02\xcf\xf1\x07\x9e\xa4\xe6\xfe\x76\xc2\xbe\xe3\xd1\xbd\x5a\x2e\x31\x7c\x66\xe4\x02\xa7\xd8\x2f\xa5\x2a\x38\x13\x9f\x22\xa0\x7a\x6b\x5f\x27\xe7\x6a\xf5\x2b\x40\x95\x7b\xb8\xa7\x3a\x2e\x29\x90\xea\x6e\xde\x7e\x9c\xb7\x0b\x02\xea\xe5\x07\xfc\xf4\x3d\x7e\xd9\x6e\xa0\x2c\xd2\x67\x08\x8f\x3f\x57\xab\xf6\xc4\x43\xa0\x5d\x53\xb6\x24\x72\x24\x44\xc4\x2e\xa2\x56\x4c\x27\xf2\x7e\x26\x7f\x5e\x0b\xc9\x54\x99\xe3\x4f\x70\xcd\x37\x6a\x66\x5a\xea\xb5\x80\x34\xd5\x23\xf6\x28\xd8\x86\x6f\x51\x6d\x86\x3b\x81\xcb\x96\x02\x4b\x06\x4e\x11\xf3\x75\x9a\x48\x23\x2d\xb2\xc4\xc6\x25\xd4\xa7\xfe\x39\x6e\x5c\x96\xe8\x90\x1f\xce\x43\xbc\xeb\x3c\xad\xe0\xf3\xc0\x54\xe6\x71\x93\x16\x20\x44\x92\x1b\x92\xca\x2a\x75\x5f\x66\x9e\x12\xf5\x95\x75\x4e\xc2\x70\x3f\xa8\x24\x66\x71\x99\xa5\x49\xe4\xe4\xee\xa3\xca\x3b\x79\x9f\x31\x80\xa6\xff\xa9\x53\x0f\x0b\xdb\xd5\xb1\x96\xe8\x9c\x00\x49\xb7\x83\x01\xfa\x85\x39\xb0\x59\x22\xa3\xb4\x84\x34\x73\xa5\x16\xf9\x91\x4b\x1d\xed\x62\xfd\x7e\xfb\x24\xd9\x9e\x84\xf3\xf0\xb0\xb6\x30\xe8\x3c\x55\xab\x24\xe2\x69\x08\x6e\xf6\xa8\x08\xc7\xc2\x6b\xb7\x3d\x25\x13\x86\x38\x08\xdb\xa0\x4e\x22\xad\x2c\x17\x40\x04\x3d\x07\x51\x3e\x27\x71\x77\x48\xbb\x97\xcc\x5c\xd0\xb1\x5d\x21\x47\xae\x75\x2f\xd8\x13\xce\xd7\x6d\x33\xb1\x81\x8a\x89\x29\xfc\x99\x7a\x94\x22\x07\x0d\x16\x60\x1f\xa6\xa7\x52\x81\x6e\xe2\xb2\xb3\x39\x7c\xb2\xcd\x4e\xb8\x74\x40\x6c\x8c\x9c\x5d\x25\x0f\x42\x7e\x7e\x52\xf3\xa0\x82\x88\x47\x6b\x31\xb7\x7a\xf9\x73\x8b\x2c\x77\x00\x0c\x14\x56\x36\x4d\x4a\x28\x4a\x9d\x7b\x13\xae\x4e\xd8\xe2\xa6\xec\x42\x47\xe2\x8e\x88\x2c\xd3\x88\x79\x2c\xa2\xfb\xcf\x2e\x9a\x3d\xc8\xca\x36\x84\x71\xf6\x4e\x44\xf7\xec\xee\x7a\x8a\xd1\xc0\x49\xc1\x8c\x28\xd0\x6b\x9f\xf6\xa9\xf3\xee\x56\xf0\xd5\x0b\x50\x58\xf5\xcd\x5b\xe5\x53\x15\xb8\x6c\x7d\xa6\x41\x04\x88\x82\x78\x49\x23\x24\x29\x96\x06\x80\x60\xbc\xb0\xd9\x8c\xc0\x10\xcf\xf4\x06\x92\x17\x95\x45\x90\xf1\x2f\xe5\x0b\x91\x76\x10\x77\x66\x2a\x9e\x5b\x3f\xc9\xa1\x60\x9e\x46\x59\xd6\x8e\x41\x5e\x47\x1b\xc7\xc0\x8d\xc6\x7a\x4b\x2f\xb2\xfb\x6f\x74\x40\xaf\xa1\x42\xfe\x70\xb8\xd7\x73\x0d\xe1\xdd\xcb\x64\x65\xbd\x6d\xc9\x92\x52\x2c\x61\x40\xbf\xd1\x83\x41\x5e\x9a\x92\xae\x54\x4c\x30\x3d\xc7\x85\x67\xb4\x20\x41\xd6\x13\x8f\xab\x08\x9b\x60\x71\x80\x50\xaf\xd9\x11\x82\xc7\x4c\x2d\xc9\x9a\x98\x65\x69\x02\xcc\xd0\x31\x92\xd0\x03\x7b\x86\xae\xa2\xe3\xc3\xd2\x6c\x63\x03\x92\x8f\x2b\x0b\xc4\xeb\x4a\xc6\x0b\x02\x03\x23\x18\xe6\xc0\x06\x37\x7f\xe0\xdd\x64\x6a\x2f\x9e\x31\xad\xa3\x3d\xce\x9b\x5c\xa5\x84\xad\x90\xf6\x91\xad\x00\x8f\x75\x1b\x90\x1f\xf1\x34\x2a\xc9\x4f\x06\xe9\xf2\x6d\x16\xfc\xdd\x08\x42\xef\xf5\x33\x13\x5d\xb5\xfa\xd7\x95\xcc\x43\xb3\x2b\xba\x00\xad\xa7\xda\x14\x76\x9b\x17\x57\xa9\x5a\xc0\xca\xe9\x46\x09\xee\x38\xb1\x8c\xb8\xce\x93\x78\x88\xbe\x63\xc7\xe4\xd2\x7d\xba\xab\x81\x97\xd6\xf4\xe3\x6a\xb2\xeb\x9e\x51\x22\x83\x1a\x73\xe3\x30\x0a\x84\x25\x65\x55\xad\x5e\x4f\x0a\x4a\xe3\x01\xcb\xca\x9d\x4f\x1d\x76\x86\x6a\x5f\x0e\x9a\xe8\x26\x53\xcc\x9e\xb1\xf4\xe4\x32\xbb\x27\xf9\x00\xba\x0f\x14\x65\x8e\xf3\xa3\xdb\xb2\x28\x63\x11\xcf\x9f\xd0\x87\x33\xfa\xb6\x5f\x5f\xdc\x48\x63\xf3\xc0\x06\x28\x8f\x8c\xaa\x10\xf3\x3c\xf6\xfd\x18\xc1\x7e\x8f\x78\x06\x66\x78\x70\x6b\x3c\xbc\x1d\xdb\x3a\xae\x7d\x74\x91\x91\x97\x18\xf3\x8f\xf8\x6d\xd5\x92\x03\x67\xdf\x3a\x72\x8b\x14\xe1\xdd\x66\xe5\xf8\xe5\x5a\x89\xbb\xe9\xb5\x76\xeb\x2b\xcc\x0a\xf0\x43\x16\xd7\x4b\xc8\x8e\xb2\x50\xde\xdb\x03\xfd\x99\x02\xed\x70\x18\xd1\x07\x02\x72\x1a\x77\x20\x45\xac\xfa\x6d\x85\xd0\x00\xfc\xf1\x20\x04\x74\x96\x0b\xeb\x37\xdc\x8a\xc2\xf1\x3a\xa4\x36\xaf\x20\xb8\xc5\x5c\xaf\xab\xc4\x36\x96\xbb\xc2\x91\x91\x81\x13\x8b\x54\xfd\x48\x6d\x32\x25\x01\x96\x84\x51\x6a\x33\x49\x85\xdb\xec\xf0\xce\xb3\x56\x09\x75\x1c\x91\x41\x13\x03\x67\x84\x56\xe9\x03\xb9\x50\x83\x24\x26\x90\x57\xd2\x34\xf0\xd4\xdc\x0d\x55\x8e\x04\x5b\xf6\x64\x87\x48\x80\x5a\x8a\xf4\x5c\xac\x12\x5d\x88\x30\x3a\x34\xfc\xfe\xd9\xb2\xd9\x56\x8c\x27\xbb\x86\xbe\x33\x9b\xed\xbe\x5b\x90\x91\x4f\x03\xda\xb3\xcd\x44\x3c\x75\xdf\xed\x5e\x0c\xb5\x00\x7e\x2f\x0e\x2b\xe7\x1d\xae\x01\xbc\xfd\x69\xa4\xfa\xd2\x2e\xfd\x88\x9b\x24\x22\x61\xe2\x1e\xd0\x68\xa6\x68\x55\xf2\x9c\xcb\x42\x08\x3d\x93\xe4\x78\x46\xca\xba\x90\x95\xa5\x06\x84\x74\x77\x9b\x48\xe9\x02\x19\xa0\xe0\x93\x25\x4f\xd2\x32\xef\x34\x37\xe0\xaa\x7c\x12\xed\xc4\xae\x51\x3a\x85\x62\x59\xdb\xa4\xb9\x00\xe6\x60\x17\x39\xd6\x94\xba\xdb\xb8\x1a\xdf\xdb\xd1\x05\x7b\xb8\xf4\x9f\x6f\x67\x6b\xee\x88\x69\xfe\x46\xcf\x33\x35\x40\xe2\xfd\xf8\x8d\xbe\x52\x1d\xd1\xe0\xfa\x97\x86\x4d\x74\x07\x7c\xe2\x97\xae\x84\x2c\x5c\xdf\x83\xe7\x71\x9f\x29\xa6\x17\x1b\xe7\x5e\xff\x64\xa7\xec\x82\x55\xbb\xe6\x32\x4e\x8d\xca\xcb\x8b\x3a\xef\xb5\xc3\x79\x9b\x2b\x51\x61\x85\x63\x77\x50\x1f\xc4\xc8\xcc\xa3\x46\x80\xe5\xbe\x71\xaa\x45\x66\xee\xc4\x52\xd6\x6a\xa9\xc6\x4b\xb6\xc5\xe9\x78\x1d\x86\xd2\x20\xbb\x0d\xfb\xab\xeb\x2f\x67\x61\xdb\x3f\x93\xfa\x52\xdd\x6b\xcb\x64\xf5\x1b\x30\x24\x7c\x68\x1e\x09\x11\xc9\x1c\x3a\xa8\x5d\x74\xc3\x81\x52\x07\x02\xc9\x8c\xd4\x0e\x19\xc7\x67\x92\xd2\xc1\x23\xba\x00\xdc\xca\xc8\xb7\xa6\xd9\x5b\x17\x5d\xfc\xf6\x77\x96\x6d\x6b\xcb\x96\xb0\xa8\x80\xd2\x4e\x45\x51\x99\x83\xeb\x9f\xcc\x93\x4c\xe0\x21\xac\x07\x11\xc9\x80\xea\xe1\x00\x5b\xa8\x27\xb6\xa9\x49\xce\x1e\x5d\xe9\xd4\x2d\x98\x21\x31\xb1\xbd\x3b\xf4\x29\x5f\x59\xae\x0b\xa6\x0b\x91\xb5\x8a\xdf\x8a\x76\xb9\xcd\xc4\x44\x4a\x55\xd4\xe3\x53\x06\xeb\x97\xdc\x95\xd2\x73\xeb\x0c\x38\x8c\x26\x81\xc9\xe8\x0f\x37\x97\x17\x2c\xe3\x5b\xc0\x3e\x16\x8a\xe1\xab\x40\x38\x5a\x17\x54\xfb\x66\xa0\xda\xf9\xaa\x54\xc1\x31\xb5\x20\xea\x76\xff\x04\xd5\xd8\x54\x16\x61\xcd\xd0\x92\x34\x32\x2b\x57\xe9\x51\x96\x72\x19\xc0\xdb\xf5\x98\xd5\xaa\x0f\xf1\x0c\xce\xb3\x49\x88\x31\x68\x00\xd8\x2b\x68\x2d\xe4\x65\x2b\x00\x1a\x78\x77\xec\x82\x3a\x0c\xc2\xd0\x29\x23\x76\x02\x3b\x3f\x60\x16\x18\xcc\x89\x80\xec\x19\x16\x96\xe1\x90\x3d\x5c\x03\xe8\xb6\x93\x01\x9c\x47\x29\xd7\x7a\x27\x4a\xe7\x45\xa8\xe4\x83\xa8\xc5\xfd\xe2\xab\xda\x4e\x84\x11\x02\xb7\x09\xde\x4b\xdd\x63\x60\x4b\xb0\xa2\xcb\x27\x7d\x0b\xf4\xfd\x20\x1b\x04\x41\x1f\x88\x2f\x0a\xbe\x47\x26\xc8\x7b\xb1\xb5\x16\x2e\x12\x55\x7c\x23\x46\xce\xd8\xea\xac\x89\x01\xe8\xaf\x59\xf0\x4c\x02\x2a\xf6\x7d\xd8\x3c\xf6\x5e\xa9\x11\xe2\x33\xa9\x72\x8e\xc5\xf2\x10\xe1\x34\x93\xef\x95\x1a\x73\x77\x89\xa5\xf6\x93\xb8\xa9\x57\x48\xa8\x28\xc0\x1c\xd6\xa6\xb3\xff\xde\xfc\x21\x91\x98\x9e\x30\xd9\x98\x0b\x14\x8d\x13\xac\x28\x68\x90\xcd\x86\xaf\x1e\x35\x8b\x91\x52\xa6\x4c\xf4\x1a\xdc\x2e\xe8\xe7\x84\xfa\xe9\x48\x41\x40\x56\xce\xa5\x36\x7b\x18\x5c\x35\xe2\x41\x90\xbd\xb6\x82\x31\x98\xbe\x3b\x77\xb0\x25\xdc\x97\x94\xba\xa3\x63\xb7\x05\x97\x8e\x43\x2e\xe7\x00\x37\x1f\x40\x68\x47\x06\xce\x0f\x3c\xdb\x15\x0c\x7b\x70\x89\xfb\x66\xc9\x11\x6a\xd5\x6f\x54\x90\xc9\x1c\x72\x18\x56\x22\x62\xc3\xd1\xbb\x93\x07\x9e\x38\xad\x9c\xf6\xfb\x53\xee\xf4\x36\x30\x0c\x14\x15\xfb\x8f\x9b\x80\xdb\xd2\x41\x06\xdd\x5d\xd0\x08\x76\xc8\x10\x07\xa4\x7c\xb8\xa5\xc7\xec\x46\x08\xf6\x11\x46\xca\x54\xf6\x91\x32\x90\x02\x0a\xba\xe0\x49\x6b\x82\x38\x78\x7b\x2a\x97\xea\x30\xf9\x9f\xaf\x1a\x28\xdb\x83\x46\xa5\xbd\x9d\x87\xe2\x78\xc1\xd2\x2f\x5f\x96\x56\xa4\xd7\xc1\x50\x9b\xeb\x2b\x6f\x6f\xa2\x60\x63\xdb\x52\xa3\x92\xc1\x14\x3f\x85\xb8\xae\xb6\x48\x4c\x2f\x47\x48\xc6\x7e\x2f\xd5\xa3\x44\x79\x4c\x35\xb1\xd7\x66\xff\x81\xce\x82\x7e\x21\xd4\x04\x4b\x94\x86\x6f\x80\x1d\x7e\xe2\xfe\x66\x37\xe8\x02\xc7\x36\x43\xea\x30\x0d\xfa\x2e\x25\xfd\x82\x03\xfc\xf5\x64\xc4\xbe\x1b\xb1\xd3\x11\x1b\x8f\xc7\x6f\x46\x4c\xf0\x68\x6d\x5b\x84\x9f\xa0\xe8\x2f\xf8\xca\x94\x4d\x69\x7f\x96\x41\x05\x90\x1e\xd0\xe8\x27\x96\x04\x91\xfb\xb7\x02\xab\x9a\xed\x02\x86\x66\x53\x1c\x19\xc1\x85\xa2\xb5\x4a\x7c\xa3\x00\x79\x2e\x22\x95\x5b\xec\xba\x2e\x54\x6e\x71\xb8\x0f\x3c\xe7\x89\x04\xc6\x0a\xde\x8c\x42\xa0\x9a\x03\xce\x7a\xf1\x89\x6f\xa0\xff\x89\x74\xb4\xbd\x66\x98\x6e\x5d\xfb\x8b\x6d\x46\x7e\xb6\xc7\x3c\x29\x0a\xa3\x90\xe9\x99\xbc\x61\x27\xdf\xb2\x49\x96\xa5\x82\x4d\xd8\x7f\xb1\xef\xb8\xe4\x92\xb3\xef\xd8\x7f\xb1\x53\x2e\x0b\x9e\xaa\x32\x13\xec\x94\xfd\x97\x19\x36\x53\xde\x85\x32\x1a\xd0\x76\xc4\x38\x93\x65\x8a\x8a\xde\x6b\x8b\x71\x7d\xe3\xfa\xc5\xfd\xec\x2c\x44\xf1\x28\x84\x64\x5a\x6d\xe8\x28\xfc\x93\x3b\xfd\x75\x22\x57\xa9\x28\x68\x3d\x54\xd1\xc8\x58\xc1\x11\xf4\xf4\x64\x26\x9d\x9d\xfa\x4f\xa6\xc5\x7f\x62\xff\xc5\x2e\xca\x34\x35\x4d\x32\x82\xc6\x2c\xa4\x13\x66\xa3\xc3\x84\x1c\x3f\x26\xf7\x49\x26\xe2\x84\x43\x7c\x98\xf9\xeb\xf8\x16\x66\x7b\x5e\x7a\x2a\xd0\x70\x4f\xbb\x74\x6c\x87\x88\x9e\x17\xe1\x9a\x70\xc9\x02\x43\x6d\xa5\x13\x84\x12\x7e\x3a\x5c\x09\xf6\x04\xc8\xb4\x1f\xe8\x8e\x82\xa9\xf4\x42\x07\x65\x7b\xfd\x2e\xeb\x57\x66\xfe\xd5\x4a\xff\xd1\x2b\xfb\xd7\xae\xf1\xf0\x6d\x04\xe5\x14\x27\xc7\x07\x67\xc2\x45\x06\x62\x09\x71\xdf\x6d\x21\xe5\x87\x2d\x1b\xaf\x9d\xe8\xde\x36\x57\x69\xd4\x46\x0b\xbe\x1a\xb1\xcc\xe5\x91\xb2\x9b\xca\x39\xb6\x71\x1f\x63\xce\x04\x52\x36\x5f\x5b\x00\x91\x59\xcb\x14\x7f\x78\x1c\xab\x0d\x4f\xe4\x1b\xa8\xc3\x52\xe7\xed\x19\xa8\x96\xeb\xca\xfe\x11\xba\xe5\x3b\xd1\x8c\xdd\xd4\xfe\x55\x65\xa7\x96\xc2\xad\x6d\x3b\x1c\x98\xc3\xcc\x67\x38\xfd\x8c\xd7\xa1\x9f\x1a\x4b\xb4\x77\xee\x03\xca\x37\x56\x61\x4f\x01\x5d\xde\x33\xc8\xf5\xf2\xad\xbb\xcc\x65\x3f\x55\x53\xbc\x56\x86\x58\x25\xbd\x72\xe1\xd6\x1a\x7b\x47\x37\x31\x8c\x7b\x36\x62\x32\x49\x8f\x8d\xa8\x3c\xbe\x50\x52\x30\xae\x75\xb2\x42\xd6\x3b\x30\xa8\x61\x12\x59\xab\x94\xdd\x56\xaf\x0c\x81\x08\x02\xfd\xcc\x34\x09\x11\xd3\x85\x91\xc2\x66\x0a\xd2\xed\x4c\x9a\x2f\x48\x23\x80\xe8\xa9\xc4\x91\xa3\x63\x6d\xc4\x3d\x6e\xeb\xa2\x03\x31\x28\xbc\x65\x81\xed\xa2\x66\x38\x60\xc1\xd1\x4e\x3c\xc0\xe3\x76\x11\x10\x83\x52\x69\x96\x35\x0a\xe1\x34\x0b\x91\x2a\xb9\x32\xab\xa2\x4b\x08\x83\x14\x78\xa6\x26\x60\x61\x9d\x2d\x30\xca\x0a\xbd\x42\x53\x62\xf4\x94\x24\xf6\x26\x35\x5d\x2e\x8c\x1e\xe7\xbc\x3d\x4e\x1b\xa1\xce\x75\xf1\x54\x1c\x06\x5b\xba\x33\x32\x58\xe5\x16\x38\xe7\x3c\x89\xa8\xb8\x78\x0e\x27\xec\x51\x17\x42\x23\x1f\x64\xca\xe9\xf0\x6c\x8f\x98\xca\x91\xbe\xd3\x7a\xb0\x1d\xff\x56\xb3\xf6\xee\x2d\xbd\x33\xda\xa3\xdd\xf6\x49\x7e\xd2\x06\x5f\x48\x8f\xdd\xf0\x6b\x06\x7e\xf4\x09\x07\x79\x3f\x99\x9e\xd7\xde\x6b\x86\x83\xb4\xc4\x8c\xdc\x4e\x3f\x9c\xbd\x9b\x5f\xde\xdd\x36\xde\x33\xa5\xd1\x4f\x7b\x22\x42\x3a\x47\xef\x39\x30\xf1\xbf\x60\x0e\xb3\xb9\x5a\x5a\x7a\x80\xfe\xc7\x73\x23\x8b\x5c\x3f\xe8\x65\x11\xdc\xae\xc3\x6c\x6b\xcd\x85\xd3\x49\x72\x22\xe7\xe4\x6b\xed\xd7\xd8\xfa\x80\x5d\xca\xf7\xf8\xf9\x95\x4a\x93\x68\x37\x92\xdb\x1e\x96\x46\xab\x6a\x42\x63\x17\x02\x42\x1b\xc8\xe0\x4b\x8d\xc2\xfb\x59\x21\xa2\xc2\x63\x09\x9a\x9d\xfb\x7f\x1a\x3d\xba\xdf\x02\x83\x76\x58\x37\x6c\x90\x9c\xdc\xa1\x13\xe0\x64\x07\xd6\x68\x48\x96\x82\x5a\x2e\x58\x76\x41\xe6\x45\x9c\x7c\x4e\x95\x91\x87\xe3\xe1\x71\xad\x52\xb2\xc7\x22\x03\xf7\x4c\x66\x22\x8f\x14\xa0\x2e\x91\xdc\x45\xb1\x68\x9d\xa4\xb1\xcf\x48\xf6\x1a\xc2\x54\x00\x4c\xfe\x86\x92\xeb\x0a\x87\x9e\xb1\xc5\xef\x38\xf3\xed\xb2\x7b\x87\xbb\xfb\x20\xe4\xd9\x73\xe2\xce\x77\x2d\xfb\x9f\x09\x1f\x8d\x43\x41\x9c\x79\x35\x1c\x04\xa8\xfd\x61\x7b\x06\xb9\x74\xcc\x61\x4f\xc9\xa6\x22\x7f\x6d\x2e\x6a\xf3\x4a\xcb\xac\x3e\x94\xc0\xa4\x8e\x76\x74\x04\x01\x6a\x01\xcd\xd9\x08\x8e\x9a\xa0\xe7\x35\xa6\x49\x9d\x49\x8f\xfc\x78\xa5\x43\xad\xb0\x75\x9e\xd1\xfa\x6e\x91\xed\x23\xf6\xaa\xd2\xd1\x57\xc0\xb4\x2d\x15\xd4\x47\xde\xf9\xca\xd0\xc0\x72\x1d\xb1\xa4\x98\x49\x73\x67\x33\x2b\x33\x17\xa9\x78\x30\xad\x0b\xbd\x43\x84\x57\xb4\x96\x13\xdb\x6d\x08\x8e\xe2\x96\x53\x83\x96\x0d\x6d\xc2\x3c\x64\x6c\x46\xb7\x74\x2c\xb4\xd1\x5a\x21\xd7\x94\xf8\x64\x36\x40\x02\xce\x4f\x04\xb6\xc5\x42\xda\xf6\x01\xde\x0d\xf3\xfc\xcf\xe4\x74\x09\xc4\x06\x40\xa7\x10\xc7\x68\x83\xb0\xd9\x87\x1c\x7d\x66\x42\xde\x20\x45\x16\x19\x3b\x11\x94\x1b\x1a\x77\x92\x78\x10\xf9\xb6\x00\x93\x3e\x8c\xab\x14\xbc\x58\xb3\xa4\x18\x01\xef\xa9\x95\x94\x33\xc9\xe3\x98\xe2\xc1\xb1\xb8\xe0\x3a\xdb\x39\xcf\xf4\x7c\xa1\x1e\x76\xa9\xd5\x87\x22\x77\x71\x57\x67\x29\x97\x73\x3c\x41\x7e\x05\xec\x6e\x90\xb6\xbb\x0b\xc4\x51\x2e\xe6\x8e\xab\xed\x59\xda\xe9\xe4\xfd\xb5\x85\x2e\xd3\xd5\xa6\x5c\xd8\x8a\x46\x15\x68\xf6\xc2\xd3\x7a\x38\x2b\x1d\xe1\xa6\x72\x66\xb1\x25\xfd\xa5\x80\x87\xf5\xf2\x1a\xc6\xca\xae\xd6\x7d\xb8\x5e\xbb\x02\x7e\xab\xc8\xcb\x3e\x33\x5f\x3b\x43\xea\xd3\x3e\x1c\xf4\xd7\xd0\x10\x9f\x04\xfc\xdb\xd3\xac\x97\x05\xff\x75\x5a\x71\x9a\x20\x40\xdb\xdb\xc0\xbf\x4f\xa1\x03\x68\x85\x75\x06\xb4\xf6\xb4\xec\xe1\x2d\x50\xb5\xe0\xe3\x9f\xd3\x43\x01\x72\xaa\xaf\x9d\xc6\x13\x8a\x40\xbb\xc6\x6c\x2a\x99\x55\xf7\x46\xec\x15\x2e\x2c\xfd\x8a\x0c\xd0\x94\xdb\x9f\xc0\x32\x31\xed\x1e\xa2\x60\xa8\x83\xcc\x30\x10\xce\x6f\x37\xf4\x03\xee\xe4\xeb\x7d\xd1\x71\xf9\x2e\x81\x40\xbc\xa7\x70\xad\xa0\x0f\x79\x81\x05\xd8\x38\x92\xc0\x14\x4a\xdd\x05\x5f\x86\xef\xb0\xf5\x76\xb2\xef\xec\x87\x66\x88\xb2\x92\xce\x53\xfb\x9c\xa9\x7c\x26\x6d\x69\x64\x90\xd6\x98\x20\xb0\x5e\x54\x10\x17\x44\x3a\x7f\xb0\x52\x01\x0a\x60\x73\x42\x42\xaa\x51\x4f\x2a\x5e\x97\x02\x80\x82\x5a\x38\x04\x2a\x64\xa1\xf0\xb5\x19\xc5\xc3\x2c\xf0\x0d\x1e\xf3\x75\xe2\xe1\x34\x35\x83\x92\x14\x96\xe7\x38\x88\xd9\xd3\x25\xb0\x75\x2f\x4b\x23\x8c\x02\x4a\xf3\x99\x34\x83\xc7\x96\x09\xc4\x6e\xd0\xb8\xcc\xe4\x07\xa5\x2d\x45\x8c\xf6\xe3\x61\x81\x05\x34\x6c\xaf\x5c\x6a\x4c\xfa\xe1\x1d\x1c\xda\xe4\xf1\x41\xb2\x37\x77\xb4\x40\xb0\x26\xf1\x3c\x6d\x55\x99\xfb\x4e\x45\x5c\xce\xe4\x5f\xcd\xf0\xc0\x75\x8a\x4b\x3b\xad\x6a\x89\x5b\x18\x66\x10\x5c\x65\x1f\xb1\xd0\xd7\xbf\x7b\xf3\xf1\x0d\x06\x57\x95\x1a\xb2\x11\x8f\xaa\x07\x88\xcb\x6e\x51\xa6\x29\xe0\x10\x6c\x0f\x1c\xc3\x92\xaf\x62\x27\x0e\x8f\x2e\x75\x73\x59\x55\x31\xfa\x6c\xf4\x7e\x66\xfd\x09\x8b\x78\x11\xad\x8f\xac\x2e\x47\x62\xcc\x9e\x7e\x34\x7d\x18\x05\x65\x34\x2d\xd6\x9a\xe0\xc1\x5c\x38\xf3\x8d\xa3\x9c\xad\xac\x17\xd3\x05\x30\xff\xdf\xd6\xb3\x9d\x39\x46\x6c\x5c\x9c\x88\x03\xaa\xea\x79\xee\x75\x9b\x6b\xd4\xdf\x38\xc9\x47\x22\xf9\x46\xc4\xec\x15\x84\x01\xbf\xb2\x93\x3f\x93\xd9\x62\x9c\x6e\x97\x05\xf1\x16\x9a\x41\x19\x43\x56\xbe\x3d\xa7\xdc\x3c\x6e\x5e\x93\xf6\x0c\x76\xe7\x45\xab\x5d\xd7\x71\x63\xe3\x6a\xea\xaf\xb0\xa0\x8d\xcb\x8d\xce\x4d\x15\x13\x58\x4d\x0f\xc2\xf5\xfd\x88\x2d\x72\x2e\x21\xa1\x52\x1c\x2a\x55\x7e\x77\xc2\xe5\x19\x49\x01\x6d\x5c\xa0\xe4\xe9\x16\xe2\x7f\x46\x33\x89\x0c\x8a\x40\xb5\xbf\x8d\xd2\x24\x62\xab\x9c\x67\xeb\x9a\x1e\x24\x1e\x84\x2c\x20\x2f\xf7\xb5\xe0\xfa\x30\xac\x46\x5e\x2f\x81\xf5\xf6\xa6\x4d\x24\xdc\x3e\xb8\xac\x71\x5e\x43\xf3\x3a\x8e\x16\xc0\x67\x8a\x78\x3e\x8c\xef\x6a\x2f\x2b\x73\x85\xeb\x93\x88\xe7\xc0\xff\x6c\x3a\xc7\x6c\xad\xfb\xc0\x0f\x38\xae\x44\xc5\x64\x11\xbd\x87\x02\x36\x1c\xb5\xd3\x41\x04\xbd\xd3\xaa\x16\xc9\x3d\x67\x95\xb7\x9b\x93\xdb\x0f\x2d\x15\x36\x0c\xc2\x09\x8e\x11\xe5\x4d\x05\xf2\x4e\xf6\xc7\x72\xa1\x52\xcb\x7e\x3a\x7d\xc7\x54\x0e\x89\x87\x0a\x45\x3f\x25\x71\x97\x76\x90\xc8\x58\x7c\x3a\x88\x82\x68\xf7\x41\x6f\xd5\x66\x53\x4d\x90\xdf\xa6\xde\x59\x90\x4e\xb9\x30\x87\x70\x61\x6f\xc6\x8d\xb7\x74\x1d\xaa\x3c\x49\x8b\x35\xe0\x87\x31\x44\xc7\x0f\xea\x86\x6f\x59\xb4\xe6\x72\x15\x98\x26\x00\xce\x29\x32\x95\x63\x82\xde\x07\xe0\xfa\x54\xb9\xa5\x78\x20\xe2\x02\x8a\x13\x72\x6e\x0c\x84\xe7\x2b\xcb\x4e\xc0\x57\xab\x5c\xac\x20\x8c\x75\x26\x2b\xd4\x2b\xc0\x73\x6a\x73\x03\x61\x3d\xbb\x98\x2b\x9e\x87\xfe\xa9\xeb\x36\x58\xe4\x5b\x17\xf7\x4f\xd9\xad\xfd\x7e\xae\x0f\xeb\x88\x25\x62\x3c\x62\x5f\xf9\x90\x04\x11\x29\xe9\x88\x03\x3a\xa2\xc6\x6b\x26\x7f\xb6\xe7\xea\xd0\xe4\x89\x6a\x6f\x3b\x3c\x6b\xe4\xc8\x6e\x5d\x34\x3b\x99\x17\x0a\x5e\x94\x03\xce\xa0\x53\x5e\xf0\x54\xad\x4e\xcd\xc7\x37\xf8\xed\xae\x75\x7d\x8a\xf1\x02\x96\xa3\xcf\xbc\x6f\x4e\x4e\x53\xb7\xe7\xf0\x6f\x1b\xeb\xbd\x06\xe4\x54\x75\x1b\x90\x9f\x43\x55\xb7\x44\x4c\xfb\x6d\xc8\x69\x07\xb9\xd0\x8e\x3e\x0d\x35\x11\x5b\x54\x3f\x05\x26\xe9\xfa\x35\xb6\x45\x02\x64\xb9\x8a\xcb\x48\xc4\x66\xe7\xc2\x7d\x08\xf1\x50\x8e\xe3\xa8\x22\x24\xdb\x0e\xda\x0a\x51\x1b\x9c\xba\x9f\xcb\xe6\xd0\x8b\x1b\xdf\x0d\xff\x5d\x87\xbd\xc1\x6a\x7c\x6d\x83\x1e\xee\x4f\x1c\xa7\x7c\xe0\x39\xe5\xaa\xaf\x32\xda\xab\x3c\x59\x25\x92\x17\x2a\x67\xaf\x1d\x93\xc1\x1b\x97\x06\xaf\x5b\x43\x18\x28\x26\x2a\x43\x84\x62\xe2\xb3\x2a\x1e\x6d\x8b\xd4\xbc\xa5\x0b\xbe\xc9\x42\x8e\x68\xb0\x02\x07\x23\x93\xe2\x20\x38\xdd\x04\x6c\xa7\x89\xf6\x51\xbb\x33\x49\x1e\x07\x9c\x37\x95\x87\x49\x0e\x3a\xcf\xe6\xac\x2c\xe6\x4f\xe4\x3d\xc3\x8f\x87\x19\x9e\x08\x04\xf1\x81\x67\xbb\x99\xa4\x38\x99\x1c\x30\x6c\x91\xcc\x11\x5e\x53\xa9\xae\xcf\xdd\x69\x84\x06\x32\x5b\xd7\x1d\xf7\xd7\xe7\xd6\x51\xe4\xef\x83\x95\x0b\x16\x4c\x04\x52\xea\x62\x18\x18\x5e\xed\x9d\x58\x33\xa7\xb8\xa5\x9f\x3a\x4d\x55\x19\x33\x12\x6a\x04\x02\xc8\xc7\x78\x3a\x02\xc7\xf5\x78\xdc\x15\xd6\x36\x30\xbd\xb9\x93\x3f\xf0\x5d\xfb\x0e\x84\x67\x1d\x12\x78\xe7\xd6\xa7\x91\x7d\xb1\xa9\xa7\x91\x86\xb9\x77\xe2\x78\xd0\xdc\x3b\x2b\x38\x10\x6e\x0e\x33\x90\xc2\x7d\x34\x89\x53\xd8\x6f\xa1\x03\xa1\x85\x12\xbc\xe2\x98\xd5\xf7\x07\x57\x67\x59\x28\x76\x57\x95\xf1\x5c\xc8\x62\x0e\x35\x0e\xab\x0c\x2a\xb9\x82\xcf\x2b\x0a\x53\x2f\x43\xf0\x9f\x6f\x15\xda\xf7\x2d\xbb\xd6\x5f\xd8\x0d\xd9\xb4\x8c\xbc\x4a\x00\x42\xac\xef\xd9\xeb\x04\x10\x4f\x81\x2f\xd4\x4d\x5c\xc7\x74\x51\x87\x9e\x30\x7a\x41\x87\x2a\xa2\xbd\x57\x87\x7c\xeb\xc1\x55\x0d\xa5\x90\x79\x8f\x38\x01\x8c\xa8\xb5\xbf\x05\x19\x37\x2e\x2a\x7f\x03\x3b\xb2\x99\xbf\x94\xfd\x4d\xe4\xca\xc7\x7f\xa1\xb1\x2a\x2c\x78\xa7\xbe\xfe\xf4\x64\xe1\xa8\x8f\x63\x9a\xea\x30\x4f\x2b\xfc\x42\x04\x66\x68\x51\x58\x6c\xed\x75\xa4\xc3\x85\x94\x89\x68\xde\x91\x94\xa7\x57\x53\x82\x8b\x67\x98\x64\x27\xa9\x1d\x66\x76\x83\x1e\x83\xbd\x82\x02\xab\x36\x3c\x23\x74\x21\x01\xc9\xeb\xce\x9b\x31\x74\xe2\xcf\x7f\xfa\xcb\x38\xe9\x08\xf1\x86\xa6\x0f\x05\x6b\xb9\xc6\xbf\xcf\x13\x21\x63\x70\xc6\xf2\xb8\x99\x2f\x4e\x56\xac\xf3\x15\xf1\x6c\x96\xe1\xb3\xc4\x83\xb7\x1f\xb5\x7a\x8e\x8b\xe8\x33\x78\xf4\xbd\x90\x75\xdb\xb7\xe2\xef\xeb\x52\x25\xf4\x3c\xde\x4a\xbe\x49\xa2\xcf\xda\xc6\x6d\x22\xd2\x18\x9a\x48\xb5\xef\xf3\x4a\xc5\x22\xba\x1f\xaa\x13\x3c\x39\xdb\x85\x88\xee\xd9\x0f\xb7\x1f\xce\x31\xb9\x71\xa2\x67\xf2\x82\x17\xc9\x83\xb8\xcb\x53\xe7\x0e\x20\x90\x76\x9e\xda\x3d\x52\x65\x5f\x0f\x98\xbe\x2c\x55\xbb\x55\x1c\xc2\xe4\x18\x9b\xed\xd1\xa2\x8c\xee\x45\x71\x9c\x73\x19\xab\x0d\x76\xe3\x58\x97\xcb\x65\xf2\x69\x5c\xf0\xbc\x23\x53\x06\xda\x11\x7e\x45\x3d\xd7\xe7\x3f\x2b\xbc\xce\x8b\xaa\xee\x23\x84\x79\x53\x56\xfd\x8a\x72\x8b\x51\x89\x7c\x23\x80\xea\x94\x55\xb3\xcc\x40\x29\x18\x39\x0d\xc9\x58\xb5\xa6\xf8\x09\x45\xa9\xde\x3f\x06\xca\xfd\xc7\xa0\x55\xde\x85\x1d\x36\xca\x27\x38\xdd\xf0\x7b\xbc\x1f\xae\x72\xa1\xf5\x88\x69\x05\x2d\x9e\x49\x1b\x89\x60\xa3\xe5\x00\xf7\x02\x64\xc9\xe9\x96\x45\x2a\x73\x90\x79\xec\xd7\x5a\x3d\x82\x9d\x3e\x8c\x13\x86\x14\xde\xa5\x2c\x92\x94\xf1\x65\x41\x46\x7c\xc8\x0c\x61\x33\xc1\xe9\xf1\x4c\x82\x2b\x36\x82\xee\x03\x44\xc2\xb9\x5f\x5c\x27\x34\x5b\xf2\x28\x49\x93\x82\xf8\xea\x20\xc4\x8c\x9b\xfe\x9a\xf3\xc0\x8c\x65\xce\xb7\x3c\xf5\x17\x2b\x9e\x96\x3e\x34\xfa\x48\x8b\x1d\x7c\xa8\x89\x9e\xa3\x81\xe0\xe5\x36\xb8\x47\x01\x26\xa1\xf3\x01\xb9\xe3\x27\xa6\xf2\x8b\xda\x29\xfa\x4f\xe1\x7f\x2b\xf7\xf0\x5d\x5a\xc1\x01\x17\xf2\x43\x0e\xc7\xe6\x95\xdb\xa5\x4f\xf7\x7a\x46\x12\x5b\x74\x72\x45\x15\xf7\xc1\xc7\xee\x78\x04\x9f\x49\xc7\xa5\x7f\x6c\x93\xde\x35\x6b\x18\x30\x7a\xed\x4a\xe2\x67\x32\x67\x74\x11\xfa\xf7\x69\xbe\xb5\xc6\x5f\x29\x95\x1e\x6a\x91\x27\x4a\x8e\x44\xc9\x39\xe4\x81\x3e\xe4\x3a\x89\x0b\xc0\x19\xb6\xa6\xef\x9c\xcf\xdd\x31\xe4\x57\xb3\xc7\x11\x1c\x8c\x9a\x00\x82\x0c\x1a\xb1\x03\xa7\xae\xb3\x16\xd0\xc5\x40\xbc\x3d\x94\x81\x68\x2d\xab\xda\x37\x5d\x04\x01\x3b\x0b\xf7\x6d\x04\x16\xe1\x5a\x0b\x07\x19\xeb\x30\x6b\x73\xad\x2a\x67\xb8\x0b\xd9\xc6\xdd\x38\x06\x75\xdb\xf1\xdc\x70\x49\x96\x3f\xd2\xe2\x67\x32\xd0\xd8\x91\x11\xcf\x06\x34\xb8\x51\x6b\xb3\xe7\x55\x96\xe1\xc1\xf6\xbc\x43\x52\x4a\xec\x94\x9c\xef\xc2\xe4\x90\x80\x05\x89\xd4\x66\x91\x48\xcb\x49\x41\x46\x6e\xb8\x6a\x4c\x2c\x63\xaf\x73\x48\xd8\x2b\x03\xa6\x0c\xaa\x8d\xbd\x53\x73\x42\xf2\xe3\x50\x64\xed\xbb\x8e\x87\xf7\xbb\xe7\xcd\x7e\xd1\xe1\x69\xac\xf7\xc0\x1c\x20\xe9\x23\xdf\x6a\x48\xa0\x2e\x8c\x54\x5c\xa2\x61\xb7\xda\xfe\x51\xa0\x7e\x58\x36\xe8\x99\x84\x11\x42\xb6\x30\x2b\x48\x8d\x64\x85\x05\x98\xda\x54\xf1\x9e\xe9\xed\x95\x6e\x1f\x9c\x5f\xc7\x57\x93\xef\xf4\xd5\xa0\x13\xfa\xbf\x87\x7b\x66\x87\x11\xf8\x40\x5b\x74\x70\x4c\xa2\xc6\x48\x30\x21\x08\x1b\x73\x2e\xea\x11\xdb\xf0\x44\xd2\x36\xc0\x74\x9c\xb1\x58\x94\xab\x55\xa7\x89\xf4\xb7\xef\x6b\xa9\xee\x93\xff\xf1\xb6\xf0\x9d\x5c\x85\xcf\x61\x2d\x9e\xda\x9a\xd0\x7c\x6d\xee\x7d\x9f\xc7\x40\xfc\x2b\x5a\xe3\x5b\x5d\x62\x8d\x45\xf4\x3c\xd6\xf8\x69\x1f\x6b\xbc\xc5\x76\x41\x80\x1f\x5d\xa7\x2d\xfe\xe6\x1f\x66\xfa\xcf\x63\xa6\xef\xb5\x28\x90\xd4\x67\x9e\x54\x15\xf4\x1d\x2d\x7c\x22\xef\xa5\xa3\x82\x86\x56\x21\xb7\x9c\x91\xee\xb1\x66\x0b\x1e\xbd\x00\x11\x26\x9c\x8e\x87\xdb\x03\xf7\x80\x5f\x6e\xd4\x46\x30\xa8\x4a\x63\x22\x27\x46\x51\x8c\x23\x40\xab\x9a\x0e\x7a\xc4\x08\xe1\x51\xe0\x38\x45\xe4\x4a\xec\x95\xea\xd7\x52\x3c\x32\x73\x5a\x8d\x42\xf8\x5e\x30\x3d\x90\xe1\xef\x8d\xd1\x0e\x2b\x58\x7f\x47\xd8\x91\x8b\x15\xcf\x63\x88\x30\xa1\x2d\x99\xf2\xe8\xde\xfc\x1b\xda\x47\x35\x12\xc4\xd0\x72\x05\x20\xec\xd5\x97\x96\xc8\x08\xa9\x10\x2d\xa7\xbb\x6b\x1f\x7e\xae\x19\x8f\x72\xa5\xd1\x68\xe4\x12\x63\x43\x7c\x35\x28\xb0\x0f\x49\x5c\xf2\x14\x6b\xec\xb4\xb4\x0f\x85\xaf\xd5\x01\x47\x41\x0e\xbb\x26\x9a\x8d\xa6\x03\x19\xaa\x60\x18\xc7\x33\xf9\xce\x39\x4c\x4e\xd8\x9d\x16\x84\x32\xd3\x36\x0b\xc0\xce\x96\xbe\x98\xfa\xd0\xc0\x04\x76\xea\x10\x3b\x06\xc0\x82\xac\x83\x81\xd0\xdd\x23\xb1\x87\x4e\xf5\x90\x49\x19\x4c\x0b\x3d\x0d\x12\xe9\xfb\x61\xc1\x7b\x42\x2e\x78\xbc\x0d\xb9\x18\x13\xc9\xc0\x4b\xc7\x78\xbc\x49\xa4\xd9\x04\x36\x59\xab\x3b\x69\x6c\xde\x06\x84\x1c\x43\x4e\xb3\x34\xad\x09\x41\xcd\xa4\x30\xca\x25\xcf\x93\x74\x0b\xf7\x89\x2c\x17\x47\x41\x3d\xc1\xfc\x50\xc4\x13\x64\xa0\x20\x12\x99\x52\x8b\x65\x99\xe2\xad\x03\xee\xe5\xae\x03\x24\x91\xee\xa6\x23\xa3\x70\x14\x94\x49\x28\xa8\x18\xf3\x73\x3e\x47\xf4\x48\xc3\x5b\x39\xcc\xe3\xe6\xb9\x42\x73\x00\xb9\xaf\xd5\xa3\x0d\x75\x7b\xe4\x1e\xcb\xdc\x75\xba\x3e\x9b\x97\x65\xb7\x1e\x6a\x6f\x80\x56\x4e\x05\x84\x7f\xce\xb5\x46\xcf\x44\xec\x64\x53\x22\xa1\x3b\x94\xe2\xda\x5b\xae\x4b\x8d\x11\x73\x66\x2e\xe1\xfc\xb2\x86\x8e\xaa\xe1\x9a\xb9\xde\x25\x5a\x49\x36\x2b\xbf\xfc\xf2\x6b\xc1\xbe\x84\x10\x42\xba\x8f\xa0\x7f\x0c\xd8\x42\xb1\x74\x10\xd9\xae\x02\x81\x54\xa2\x8d\x19\x61\x6d\x10\x55\x1b\xaf\x0f\x20\x4f\x1e\xad\x99\x2e\x17\x88\x60\xe4\xe4\x62\xe1\xd2\xb1\x8e\x9f\x2b\x00\x23\xe2\xc9\x6e\x5b\xff\xff\x88\x43\x01\x93\xbe\xcc\x64\xa6\x90\x18\x1f\xa0\x9f\x0b\xc1\x36\x3c\xbf\x87\x1c\xbe\x68\x9e\x87\x44\x00\xaf\x13\x31\xae\xba\x17\xde\x54\xda\x43\x0e\x1d\x24\xbc\x66\x79\x29\xa5\x4d\x4a\xc6\x8c\x62\xea\x6d\xfd\xa3\x99\x5c\x94\xe1\xdd\xb3\xe2\x2c\xf0\x4b\x0b\x1c\x06\x20\x6c\x15\x30\x95\x50\xa3\xb8\xf6\xed\x1a\xb3\x1e\x5e\x83\x99\x7c\x66\xb7\xc1\x3e\x83\xdf\x15\xe9\x60\xd6\x98\x17\xc4\x2b\x40\x77\xc3\xbc\xd9\x30\x1d\xb8\xec\x41\xc9\xb9\x82\xe4\xd9\x23\xf6\x43\xf2\x20\x46\xec\x26\xe3\xf9\xfd\x88\xbd\x43\xf7\xdf\x1f\xd4\xa2\xcd\x86\xd7\x20\x94\x38\xd8\x8e\xf7\x34\x33\xd6\x2e\x9a\x97\x76\xed\xff\xe7\x06\x31\x00\xeb\xf2\x7d\xff\xf7\x44\xe4\x75\x70\x7d\xfc\x4f\xb7\x44\xec\x71\x53\xff\x03\xbc\xf6\x3f\xf2\x56\xbc\x9b\xe6\xe3\x9f\xc2\xff\x5a\xf9\x65\x35\x2e\xd0\x3d\x49\xca\xb5\xa2\xd2\x7e\x5b\x81\xcd\x49\x5c\x3f\x94\x9b\xf1\xcd\xfd\xb6\x02\x85\x8f\xc7\x2e\xb4\x7d\x00\xe8\x9e\x3e\xb5\xe3\x75\x9a\x2a\x5d\xe6\xbb\x37\xff\x75\xb5\xd5\xb6\xf6\x16\xa2\x57\x58\x6c\x9b\x85\x00\xd6\x82\xbe\xf0\x13\x7c\x6d\xfe\x57\xb5\x98\x03\xd6\xea\xb0\x1d\xde\x56\x9c\xa3\x8f\x56\x51\xa5\xa9\xfe\x84\xbc\xc9\x04\xf0\x5d\x79\x55\xd4\x3b\x04\x6a\x2b\xcc\x99\x46\x66\xd2\x32\xee\x63\xc4\x6c\x9e\x0b\xa0\x06\xcf\x05\x24\x7a\x64\xc4\x70\x98\x6e\x03\x8d\x28\xb8\xf9\x78\x50\x4c\x18\xe5\x06\xc1\xaa\x74\xdf\x5a\x08\x21\xdd\x68\x0f\x51\x25\x80\x06\xbb\x36\xfa\x84\x76\x7b\x14\x36\xf1\x42\x47\x52\xda\xc6\x77\xc1\x5d\x10\x54\xee\x95\x28\x02\x69\x5e\x53\x2d\x2a\x5b\xb3\xe2\xa1\xfa\x4d\x21\xfe\x5b\x7d\xd0\x35\x72\xae\x8a\x01\xa5\x97\x4f\xef\x39\xec\xe5\x57\xbc\x58\xe3\x85\x76\xa3\x0a\x81\x32\x13\x59\x82\x70\xbd\xa0\xd5\x79\x91\xaa\x05\x64\x58\x2c\x76\x30\x48\x46\xb4\xb5\x7b\x0d\x5d\x73\xc2\xfa\x48\x06\x23\x4d\x20\xd2\x36\x17\x1a\x08\x57\x9a\x5e\xaa\xbe\xf8\xe4\x61\x97\xee\x66\x73\x8d\xd0\x7f\xd7\xb8\x6c\x37\x53\x72\x98\x6d\x0d\x60\xd5\xb3\x27\x44\xd0\x34\x12\x9c\x10\x55\x35\xb9\x81\x91\xad\xb6\xd6\x5f\x9b\xc8\x7f\x26\x27\xf8\x24\x38\x04\xb8\xcf\xb1\xe5\xf0\xa0\x94\xb3\xd9\xed\x3f\x0c\x5f\x65\x93\x10\x81\x48\x16\x82\x91\xb7\x65\xc2\x65\x60\x04\x51\x8d\xb2\x48\x72\xc1\x24\xa0\x10\x66\x52\x97\x8b\x23\x4f\x4c\x62\x6e\x71\x0f\x40\xa6\xa3\x45\xc6\xe1\x2a\x03\x7c\x45\x47\x2d\xc7\x30\x5a\x26\x7d\xae\x1c\x4b\x1f\xc8\x53\x12\xfe\x10\x2b\x89\x91\xf1\xae\xef\xae\x1c\x73\x59\x83\x5b\xb4\x85\x2b\xe1\x61\xb7\x4b\x5e\x40\x36\x2f\x88\xc0\xbc\x46\x14\xc5\xaf\x7d\x80\x87\xde\xd0\xbe\x47\x37\xf8\xd3\x66\xf2\x5f\xed\xd9\xd0\x0d\x2a\x1e\xb0\xd2\xcd\xc8\x98\x23\xaa\x13\xec\x5c\x69\x9b\xbd\x42\x06\x4a\x60\x77\xa3\x1a\x4b\xbe\xad\x54\x6e\x71\x2d\x61\x4a\x17\x45\xe1\xb2\xf0\xf4\x21\xd1\x01\xd9\x3b\xd4\x76\x23\x04\x3b\xc9\xc5\xf2\xe4\x63\x2e\x96\x73\x3b\xd3\x63\xe8\xd0\xd8\xf4\xa8\x49\xf9\xde\x73\x71\xe8\x4c\xc9\x76\xf2\xc3\x3d\xd4\xa8\xb5\x2e\x61\x39\x41\x9f\x92\x25\xf3\xd9\x6d\x4d\x7f\x80\x01\x42\xc4\x75\x2e\xfa\x46\xcb\x3e\xfb\x31\xd7\x85\x04\xeb\x01\xb5\xea\x48\x82\xfa\x3f\xff\x78\xab\x8c\x59\x9f\xe3\xed\xb6\x0a\x99\xb1\xc2\x9e\x4b\x77\xe0\x75\xe3\x42\x3f\x2f\x3a\x1d\x26\x50\x67\xfc\x51\x12\x8f\xcd\x20\xd3\x53\xbf\x63\xad\x06\x20\x0a\x8e\xb5\x06\x06\xce\xef\x32\x69\x2d\x7d\x89\xcb\xa3\x39\x62\xfe\x06\xcd\xd3\x34\xcc\xa8\xe1\x3d\x6d\x33\xe9\xe3\x52\x8d\xd6\x9a\xa6\xd6\x84\x57\xd1\x37\x5c\xc2\x63\x5d\xf0\x42\x8c\x2c\xe9\x0a\xd1\x15\x92\x3f\xec\x68\xc1\x21\xb5\xb5\xcb\xa1\xb6\x6f\x37\x3f\xd7\x25\xf2\x37\x16\x17\xbd\xc7\xf3\x8c\xd5\xce\xef\x45\x03\xce\xbc\xb7\xad\xed\x9e\x8e\x80\x52\x02\x36\xb3\x95\xb2\x11\xcf\x73\x8b\xf2\xa7\x5a\x99\xa5\x3b\x0f\x6f\x25\x1d\xed\x5c\x8b\xe8\x3e\x53\x89\x1c\x2c\x8b\x2a\x14\x17\xb0\xd8\x0b\xe6\x4b\x73\xb7\xc3\x5e\x87\x63\x45\x9f\xc4\x8e\x68\x80\x57\x58\x68\xa8\x27\x63\xe3\xcc\x65\xca\xee\x5e\x76\xcf\x6d\xbf\x10\xfe\x6c\x78\x01\x5b\x6c\x8b\x7f\xa8\x76\xaa\xf0\x16\xc3\x4e\x85\x09\x94\x37\xa2\xbf\x7a\x0e\x36\x67\x15\x0a\xc3\xd6\x21\x05\x13\xe4\x3f\x2c\x43\xff\xb0\x0c\xfd\x37\xb7\x0c\x7d\x4e\xb3\x10\x60\x63\x5e\xd2\x26\xb4\xc3\x41\x7e\xc0\x76\x74\xb5\x0e\x8e\x71\x6c\xd5\x8e\x47\x41\xd2\xef\x20\xd2\xb1\x09\xf4\xb7\x44\x18\x66\x7c\x16\x3c\xba\x17\xb2\xd3\x47\x6f\xe9\x8b\x3a\xf3\xaf\x3e\x2f\x82\xa5\x8d\x7d\x29\xf8\x7a\x37\x94\xc5\x43\x9d\x88\x34\xb8\x8d\x10\xc4\xec\x13\xd0\x3d\x4d\xc7\x8f\x00\x34\xa6\x72\x47\x6c\xad\x29\x0a\x0f\x9d\x91\x48\x93\x84\x60\xa9\x1a\x15\x74\x5f\x4c\x9c\xad\x78\x9e\x29\x95\xb6\x42\xe3\x9e\x75\x00\x1b\x81\x32\x7d\x07\x6f\x8a\xca\xa8\x0e\x01\x63\x76\x14\x7d\xd0\x85\x0f\xd1\xc0\x78\x0c\xc8\xc4\x01\xab\x29\x2e\x21\x96\xd2\x0f\x47\x90\x5e\x91\x3b\x83\x0b\x61\xc4\x16\x22\xe2\x90\xf8\xd5\x82\xf7\x22\xee\xa2\x4f\x42\x52\xa4\x46\x38\x88\x6e\xd6\xd3\xe1\xb5\x84\x72\xe7\x49\x5b\xda\x8d\xa1\x9b\xab\xa6\x21\x58\x68\x39\xb6\xdc\x22\x49\x2c\xed\xe2\xbe\x84\xc6\x96\x63\x7a\x0e\xd9\x17\xfb\x9d\x70\xad\x72\x67\x4a\x05\x9d\x42\x39\xfd\x05\xe9\x0f\x10\x8e\xb3\xe9\x89\xdc\x99\xc9\x89\xcb\x73\xeb\xb1\x5f\x0e\xb9\x87\xee\x52\xc4\x2c\x36\xa6\x06\xb9\x1c\xfd\xcd\x65\xc4\x74\x19\xad\x81\xad\xb2\x2a\xa7\x42\xb9\xd5\xdc\xb1\xa3\x99\x34\x17\x22\x30\xb5\x6c\x38\xc4\xc5\x3f\x1a\x65\x55\x27\x7f\x13\x0e\x9e\x45\xe4\x5d\x21\x22\x0b\x2f\x4e\x4a\xb6\xa2\xd7\x2c\x71\x28\x02\x2c\x3c\xa6\xa4\xcc\x62\x5e\x88\xf1\xcc\xa3\x6d\x12\xb4\x74\x5a\x94\x07\xa9\xcc\x3a\xec\x58\x88\x63\xac\x49\xda\x34\x59\x8a\x68\x1b\x35\xb2\x10\xed\xa6\x89\xf8\xc7\xb5\xed\xb7\x75\x6d\x43\x96\x5d\x8c\x19\x1c\x32\xb4\xd4\xd4\x6b\xff\xf9\x61\x83\x2b\x58\xd0\x12\x3d\x60\x9c\x3f\xe3\xb5\xb3\x45\x07\x1e\xa6\xcf\xf7\xbe\x07\xed\x3e\xce\xfc\xc5\xd6\x1f\xd6\x01\x05\x42\x43\x2d\x0c\x9d\x8b\x45\xb8\x74\x8c\x42\xdb\xdb\xad\xdf\xcd\x32\xf3\x9b\x02\x27\xf5\xb9\xb8\x1a\x8d\xdb\xc1\x95\x2e\xac\xa6\x2d\x05\x9e\x77\x3b\x34\xee\x80\xd5\x9d\x17\xaf\xb4\x1b\xf5\xaa\x04\xb4\xd8\xff\x89\xdc\x1e\x14\x80\xb9\xcd\xc4\xbc\xcc\xd3\x83\xe0\xc6\x77\xd7\xe7\xc7\x4e\xdb\x00\xcd\xb9\x33\xef\x51\x51\x4b\x0d\x6d\x73\x12\x8b\x98\xe0\xa0\x91\x4a\xd9\xa2\x5c\x2e\x21\x7f\x09\x01\x43\xad\x30\x82\xcc\xf4\xa5\x2e\xec\x79\x82\x4c\x33\x5c\x17\x33\xa9\xa4\x60\xb3\x2f\x8e\x67\x5f\x98\xa3\x2c\xe7\x51\x21\x72\x24\x19\x48\xb9\x2e\x98\x16\x2b\x50\xb5\xa8\xd2\xbb\xeb\x73\x88\x4a\x2c\xd6\x58\x9c\xbb\xb2\x62\xbc\x27\x72\x3e\x43\xae\x1f\x20\xa8\x96\x41\xc6\x2d\x68\xfb\x6b\xae\x59\x22\x67\xf2\xa3\x29\xe2\x78\xa5\xd4\x2a\x15\x63\x3b\x21\xe3\x77\x64\x7a\xfc\xf8\x06\x5b\x00\x9f\x87\xb0\x7e\x73\x20\x72\xa9\x64\x12\xf1\x14\x02\x72\x66\x12\xb4\xe6\x91\xe9\x0c\x98\x46\x67\x5f\x8c\x67\x5f\x30\x70\x9f\x16\x8c\x47\x91\xc8\x0a\x11\x63\x6a\xd3\xa9\x64\x19\xe0\x17\x23\x31\x62\x85\xe0\x1b\x6d\x29\x9d\x59\x66\xee\x98\x70\x35\x64\x89\x24\xa4\xd3\x22\x91\x3c\xdf\x22\x98\x09\x93\x95\x53\xf0\xc7\x76\x26\xc5\x27\xa0\xff\x4c\x80\x01\xb4\xd4\x8e\x96\x86\x12\x13\x98\x2e\x4f\xe4\x76\xcc\x7e\x40\x86\x06\xa4\x40\xbd\xbb\x3e\xb7\xf4\x46\x14\x03\x3a\x93\x3a\x5a\x8b\x8d\x60\x1f\xd7\x45\x91\x7d\x1c\xe1\x7f\xf5\x47\xf0\x38\x4a\xc5\xf0\xe9\x88\x99\x29\x32\x8a\xaa\xc5\xcb\xa7\x5b\xc8\x21\x5b\x66\x94\x70\x7e\x26\x81\x8b\x3d\x0f\xd1\xbd\x66\xb4\xa1\xc6\xe0\x0a\x5e\xc1\x85\x1b\x29\x0e\xc9\x1d\x4f\xcc\xe0\xfc\x2f\x36\x5d\xfa\x2a\xcd\x00\xda\xdc\x62\xae\x55\xa0\x90\x68\x08\xd9\x1a\x9b\x0f\x26\x92\xfd\x70\x7b\x7b\xc5\xbe\x3f\xbb\xb5\xca\xce\xdd\xf5\x39\xae\x0b\xa0\x53\x61\x9c\xfd\xb9\x3e\xc5\xb7\xdb\x4c\xfc\xe5\xcf\x7f\x99\x49\x66\x73\x94\x4b\x3b\xd2\xb8\xa3\x47\x48\x09\x0b\x78\x27\x70\xcc\x02\x95\x33\xd4\x87\x29\x77\xa8\xf9\x39\x6a\xe7\x8f\x64\x2d\x80\x33\x2a\x55\xea\xbe\xcc\x9c\x99\x3b\xd4\xc3\x4c\x85\x77\xd7\xe7\x50\x3a\xd0\x29\x15\x6b\xc8\x9f\x26\x9c\xf5\x05\x26\x9e\xdb\xc6\x98\x7f\x3f\xa8\x24\x66\x5c\x6e\xcd\xb7\x58\x34\x2c\xcb\x5c\x2c\x55\x2e\x46\xf6\x4d\x53\x00\x2f\x92\x45\x92\x26\xc5\x16\xa4\x94\xcd\x6b\x9f\x59\x8e\x7c\x53\x80\xb9\xcd\x10\xc0\xdb\x2c\x30\x4c\x63\xfb\xfa\x4e\x87\x08\x70\x98\x34\x97\x1b\x11\x2f\x3a\xe6\xdb\x45\x2e\xf8\xbd\x59\xdd\x54\xc2\xf8\x0d\xe5\x8c\x15\x27\x78\xc6\x2c\x4b\x19\xe1\xd2\x30\x6d\xa0\xd5\x4f\x37\xa7\x74\xcb\xf8\x03\x4f\x30\xa7\xac\x75\x97\x2f\x97\x49\x94\xf0\x94\x24\xc7\xa2\x5c\x42\xda\x18\xae\x29\x65\x11\x82\x0f\x4d\x21\x70\xcb\xb0\x09\xfb\x71\x41\x2d\xc4\x2a\x41\xc0\xf1\x63\x52\xac\x31\xae\x60\x8c\xf3\xcc\xb3\x44\x8f\x23\xb5\x81\xfd\x76\x03\x4b\x49\xd3\xa5\x17\x70\xe0\xb5\x75\xce\x5e\x5b\xa8\xdd\x26\x2b\xb6\xb4\xf6\xde\xb0\x4d\xb2\x5a\x17\x90\xc8\x05\x6a\x07\x48\x44\xb2\xc9\x52\xb8\xf4\x91\x87\xd1\xe2\x7d\xb5\xd8\x70\x59\x24\x51\x97\x4f\xa9\x35\x25\x78\x3f\x8c\xe7\x62\x5b\xec\xb6\xe3\x7d\x20\x9e\x7d\x8e\x14\xfa\x81\x44\x66\x75\x81\x4c\x32\x10\xd2\xcb\x04\x04\xfe\xf5\x94\xb3\xfb\xae\x50\x1f\x27\x72\xfb\xd1\x93\x90\x72\x19\xe4\xbe\xda\x51\xbb\xdd\xff\x3c\x55\x34\x6b\x8c\xcf\x24\xa0\x3a\x8d\xc0\xa0\x64\xb4\x3b\xcf\x18\x77\xa4\x98\x99\xbd\xb2\x8b\x26\x4d\x16\x50\x37\xc9\x0a\xcd\x74\x99\x41\x3c\x41\xa1\x58\xc6\xa3\xfb\xe3\x52\x9a\xff\x18\x61\x88\xdb\x5d\x87\xe4\x44\x33\xa9\x96\xac\x2c\x70\xe3\xd8\x25\x0c\x46\x91\xc0\x14\xe0\x2f\x68\x1b\x51\xac\x55\xec\xe2\xc2\x4c\x99\x30\x7e\xa6\x45\x67\x44\x2f\xfd\xf6\x84\x5d\x99\x0a\xcd\x22\xa6\xba\xb9\xeb\x7e\x22\xd9\xe9\xbf\xfe\x2b\xbc\x6f\x06\xf7\xbd\x52\x6c\xa9\x14\xfb\x96\x8d\xc7\xe3\x7f\xc7\xdf\x4c\xa1\x5c\x6e\xe9\x2f\x2e\xb7\x63\x53\xdc\xfb\x5c\x6d\x5e\x2f\x95\x7a\x43\xbf\x43\xd2\x66\xf3\x8f\x64\xc9\x5e\x9b\x97\xee\xa0\xaa\x5b\xf5\x7a\x56\x7e\xf9\xe5\x57\xbf\x37\xaf\xbe\x61\xff\x89\xef\x04\xaf\xff\x3d\x6c\xea\x57\x7b\x9a\xfa\x07\xfe\xc0\xfb\xb4\x95\x7d\x0b\x67\x8d\x29\x60\x67\x1b\x13\xfd\xfa\xbd\x52\x63\xb8\xfd\x87\xad\xc3\x62\xcd\x1b\xd8\x8a\xe0\xad\x7f\x0f\x9a\xcd\x6c\xbb\xbf\xde\xd3\x6e\x44\xd5\xbb\x96\x63\xf1\xef\x95\x7a\x3d\x1e\x1b\xb9\x45\xe3\x8a\xad\x7e\xfd\xa6\x3a\xd0\xd0\x81\x66\xfb\xcd\xe3\x29\x36\xff\xdd\xd9\xcd\xe9\xf5\xf4\xea\xf6\xf2\xfa\xcd\x89\xed\x81\x9f\x81\xe0\x7b\x66\x53\x6b\xbb\x86\xff\xef\x3d\x0d\xff\x5e\xd9\x36\x43\xa3\x4f\xbe\x65\x38\x9b\xd9\x62\xfc\x5e\xa9\xff\x1c\x8f\xc7\x7f\xa7\xc7\x5c\x6e\x47\xe6\x60\x32\xef\x64\x28\xca\x3f\xf0\x5c\xaf\x79\x6a\xfa\x14\xb4\xc1\x75\xa2\xb5\x44\x5b\x5c\xb2\xac\x15\x76\x27\x37\xbe\x38\xa8\x0c\x26\x16\xde\xfa\xe7\x6f\x99\x4c\x52\x3f\x7d\x41\x1d\x30\x4f\xb7\x40\x2d\x11\xdd\xbb\xed\xe2\x72\x84\x2e\xb6\x2c\xab\x6f\x5c\x8c\x3b\xdb\xda\x0c\x05\x46\xdc\xcf\xe4\xab\x16\x89\x7e\x6c\x54\xbb\x31\x3c\x30\x07\xd4\x2b\x9b\x3d\xde\x1e\x0b\x2e\xb3\x16\x8e\x2c\x38\xa2\x71\xb7\x4a\x8a\x51\x6b\xd3\x0f\xdd\x81\x17\x90\x55\x81\xda\xf9\xea\xf8\x15\x05\x0a\xf9\x2a\xaa\x44\xf2\xb3\x2f\x96\x4a\x8d\x17\x3c\x87\xd6\x7d\x3a\xde\x8e\xff\x36\xfb\x02\xfb\x83\xca\x07\x2a\x46\x50\xf8\xec\x0b\x78\x0a\xcb\x61\x26\xff\x70\x73\x79\x31\x93\xdf\x7e\xfb\xed\xb7\x38\x5a\xe6\xef\x16\xdf\x8b\x39\xae\x40\xdc\xa2\x9e\x52\x6a\x9b\x52\x52\xac\xca\x94\xe7\x33\xd9\xee\xae\x89\x85\x17\x9a\x23\xef\xbc\xa1\x75\x36\xb2\xd9\x2d\x20\x49\x99\x95\x71\x68\x9b\xfc\xf8\xff\x9b\x26\x7f\x24\x15\xd1\x09\xf9\x70\x08\xc6\x76\x31\x9f\xd8\xa5\x6a\x06\xdb\xac\x5f\xaf\x67\x2d\x93\x54\xd0\xc6\xb5\x8b\xfb\x4a\xe4\x5a\x49\xbf\x66\xe8\x42\x00\xdc\x66\xe0\x00\x60\xdf\xb2\xb7\xff\x5e\x7b\x6a\xe6\xc1\x3e\xfc\xaa\x22\x09\x18\xf3\x45\xcd\xbe\x80\x56\xcf\xbe\x38\x61\xb3\x2f\xda\xd6\x4d\xb5\x61\x63\x6c\xca\xec\x8b\x91\x2f\x00\x9a\x71\xc1\x37\x58\x48\xf9\xe5\x97\x5f\x47\xd8\x04\x0c\x5d\x0b\xde\x34\x4d\xea\x7e\x31\x68\xe2\xb4\xe6\x3a\xb3\x03\x61\x43\x20\x1f\x45\x9a\x1e\xdd\x4b\xf5\x88\x79\xc6\xc1\x4f\x44\x51\xca\x0c\x97\x47\x75\x72\x29\x37\x59\x6d\xc6\x6d\xd0\xa6\xab\xc6\xa5\xb7\x83\x09\x9d\xc9\x8f\xb0\x74\xec\x8c\x12\x1d\x11\xd0\x81\xba\x9a\xe0\x52\x43\x2b\xc1\xc6\x58\xd0\x42\x98\x49\x28\xc6\xcd\x39\x7b\x0d\xc0\x2f\xea\x4a\x43\xb3\xb6\x97\xa7\xbf\xfc\xf9\x2f\x6f\x4e\x0e\x99\xa7\x6a\x71\x95\xa9\x82\xfe\x60\x19\x6f\xc7\x5f\xbd\xfd\x4a\xcf\xbe\xa0\x51\x6f\xbf\x62\x9f\x27\xba\xf8\xa9\xa6\x81\x3d\x21\xd9\xb9\x51\x1c\x5e\xca\x79\x61\x9b\x8a\xcd\xec\xeb\xb4\xb8\xae\xba\x15\xd4\xd2\x9a\x75\xe0\x72\x66\xd3\xc0\x9b\x76\x0f\x52\xef\xdc\x78\xe1\x65\x8b\x3d\xe6\x3c\xcb\x44\x6e\x6d\xe5\x0d\x77\x06\xe4\x54\x87\x5a\xac\xe8\x6f\x13\x66\x66\xd9\xd4\x8a\x86\xd7\x60\xe8\xc6\xed\x33\x77\x51\xa6\x69\xe7\xcc\xed\x4f\x96\x7c\x71\x77\x7e\x3e\xff\x69\x72\x7e\x77\x66\xbb\xdf\x9a\x7c\x38\x78\xad\x73\x4c\x5c\x4b\x68\x4c\x10\x57\x55\x00\x96\xaa\xdc\x88\xdc\x32\x85\xf9\x5e\x23\x8e\xa4\x4c\xd3\x6a\x5a\xec\x99\xfc\x48\xe5\x80\x18\x28\x65\x62\xd5\x94\x9d\x03\x57\xad\x1f\x5e\xfb\x68\x0a\xff\x88\xdf\x1e\x31\xdf\x89\x13\x76\xe1\x6a\xed\x18\x57\x22\x9c\x38\x60\x3b\x60\xbc\x6d\xd7\x76\x78\xee\xc4\xff\x4f\xdb\x1e\x77\x12\x92\x7e\x19\xc9\x8b\xf9\xfa\x9f\x65\x77\xe0\xd8\x7d\xac\x42\xc1\x9d\xb9\x34\x46\xaf\x21\x94\x3b\xc2\x74\xed\xba\x20\xce\x62\x1c\xb3\x99\x44\x41\x6c\xda\x54\xa8\xee\x36\xb1\x29\x79\x90\x52\x2e\x57\x25\x5f\x09\x3d\x62\xb6\xf2\x99\xb4\xb7\x53\x7b\xd7\x71\xc0\x1c\x60\x64\xad\x2d\xa1\x5a\x08\x70\x22\x67\x92\xfa\x04\x27\x2c\x15\x8f\xe1\xa8\x7f\xb8\x71\xdd\xa1\xb8\x6f\x2c\x88\x32\xce\xcb\x99\xc4\xc9\x45\xdb\x98\x05\x1b\x82\xda\xd1\x3c\x9b\x38\xc0\x83\xf1\x5e\x17\xb3\x42\xad\x00\xf6\x38\x93\x8e\x05\x0b\xc1\x19\xf6\xbe\xe6\x73\x83\x62\x93\xf6\xcb\x13\x3b\x19\x76\x4f\x50\xdb\xda\x57\xfd\xc1\x67\x80\xd9\x70\xf3\xd6\xbb\xfc\xee\x65\xeb\xc5\x58\x4f\x40\x0e\x0f\x04\x47\x17\x35\x22\x50\x9f\xb5\xb7\xc6\xf6\x0b\xdf\xe9\x8c\x1e\x55\xe5\x22\x1d\xd0\x24\x7c\x7f\x67\xa3\x50\x24\xef\x6e\x54\x0f\x8b\xf4\x75\x6d\x6b\x99\x65\xba\xab\xda\x85\x52\x1d\xf3\xf2\x8c\x98\xdd\x4a\xa3\xe8\x83\x7d\x83\x51\x46\xc5\x53\xd6\x4b\x0f\x3e\xa0\xfa\x10\x59\xe9\xb3\xab\x41\x69\xa2\x9f\xd4\x1c\xaf\x3f\xf5\x6e\x91\xd3\x10\xe8\xb0\x1b\x24\x61\xe9\x9c\xab\x08\xd8\x0e\x31\x69\xaf\x29\x18\xde\x22\x12\x14\x2f\x66\xf3\x8c\x60\x13\x99\xf5\x3f\x72\x8b\x68\xe4\x67\x6e\x04\x8d\x8c\xca\x5c\x1b\x71\x49\xf2\x8e\xa4\xb6\xca\x19\x9f\x49\xcb\x06\x63\xc5\xf1\xc4\xda\x83\x73\xf7\x2b\x72\x2c\x65\x98\xb2\x0e\x9c\x42\x05\x58\xc9\x49\x1a\xce\xe4\x03\xcf\x13\x2e\x01\xd3\xbc\xd0\x90\x6f\x18\xae\x74\x5b\x46\x0f\x1c\x01\x87\x0e\x8d\xcc\x7b\x64\x5e\x4d\x0d\xa8\x9c\xf3\xff\x64\xfe\xf7\xf7\x7f\xfa\xbf\x01\x00\x00\xff\xff\xde\xaa\xee\x8d\xa0\xa7\x06\x00") +var _adminSwaggerJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\xfd\x7b\x73\xe3\x36\xb6\x2f\x0c\xff\x3f\x9f\x02\xd5\xfb\xad\xea\x64\xc6\x76\x67\x2e\x67\xbf\x53\xde\x75\xea\x79\x14\x5b\xdd\xd1\x89\xdb\x76\x7c\x49\x76\xea\x68\x97\x02\x91\x90\x84\x31\x05\x28\x00\x68\xb7\x66\x6a\xbe\xfb\x53\x58\x00\x48\x90\x22\x25\xea\x6a\xca\x8d\x9e\xaa\x89\x2c\x91\xb8\x2c\x00\x0b\xeb\xfa\x5b\xff\xfa\x03\x42\xef\xe4\x0b\x1e\x8f\x89\x78\x77\x8e\xde\xfd\xe5\xec\xbb\x77\x27\xfa\x3b\xca\x46\xfc\xdd\x39\xd2\xbf\x23\xf4\x4e\x51\x95\x10\xfd\xfb\x28\x99\x2b\x42\xe3\xe4\x83\x24\xe2\x99\x46\xe4\x03\x8e\xa7\x94\x9d\xcd\x04\x57\x1c\x5e\x44\xe8\xdd\x33\x11\x92\x72\xa6\x1f\xb7\x1f\x11\xe3\x0a\x49\xa2\xde\xfd\x01\xa1\x7f\x43\xf3\x32\x9a\x90\x29\x91\xef\xce\xd1\xff\x35\x2f\x4d\x94\x9a\xb9\x06\xf4\x67\xa9\x9f\xfd\x1f\x78\x36\xe2\x4c\xa6\x85\x87\xf1\x6c\x96\xd0\x08\x2b\xca\xd9\x87\x7f\x48\xce\xf2\x67\x67\x82\xc7\x69\xd4\xf0\x59\xac\x26\x32\x9f\xe3\x07\x3c\xa3\x1f\x9e\xff\xfc\x01\x47\x8a\x3e\x93\x41\x82\x53\x16\x4d\x06\xb3\x04\x33\xf9\x81\x8b\xf1\x87\x7f\xd1\xf8\x8c\x8b\xf1\xbf\xe1\xc3\x4c\xf0\x7f\x90\x48\x99\x3f\x62\x3e\xc5\x94\x99\xcf\x0c\x4f\xc9\xbf\xb3\x46\x11\x7a\x37\x26\xca\xfb\x53\x4f\x3d\x9d\x4e\xb1\x98\x6b\xf2\x7c\x24\x2a\x9a\x20\x35\x21\xc8\x74\x8a\x1c\xbd\xf8\x08\x61\x74\x2e\xc8\xe8\xfc\x37\x41\x46\x03\x47\xf5\x33\x43\xed\x2b\x18\xda\x6d\x82\xd9\x6f\x67\x96\x66\xd0\x32\x9f\x11\x01\x13\xed\xc5\xba\xf5\x4f\x44\x75\xa0\xd9\xfc\xf9\xbf\xf8\x8f\x0b\x22\x67\x9c\x49\x22\x0b\xe3\x43\xe8\xdd\x5f\xbe\xfb\xae\xf4\x15\x42\xef\x62\x22\x23\x41\x67\xca\xae\x6c\x07\xc9\x34\x8a\x88\x94\xa3\x34\x41\xae\x25\x7f\x34\x66\xae\x7a\x99\xf1\x42\x63\x08\xbd\xfb\xff\x09\x32\xd2\xed\xfc\xc7\x87\x98\x8c\x28\xa3\xba\x5d\x69\x76\x53\x3e\xdc\x77\x85\xb7\xfe\xfd\x87\xaa\xcf\xff\xf6\x66\x34\xc3\x02\x4f\x89\x22\x22\x5f\x7f\xf3\xaf\x34\x17\xbd\x48\xba\x73\xb3\xa2\xe5\x41\x97\x66\x7a\x03\x9f\x70\x72\x82\xb8\x18\xa3\x27\x32\x47\xb0\xa5\x48\x8c\x14\x87\xb5\x13\x44\xf2\x54\x44\x8b\xb3\xa7\xf0\xbe\xde\x66\xe5\x5f\x04\xf9\x3d\xa5\x82\xe8\x65\x52\x22\x25\xa5\x5f\xd5\x7c\x06\xc3\x93\x4a\x50\x36\xf6\x89\xf0\xef\x93\x46\x93\xb2\xbb\x73\xc5\xc4\xae\xf1\x94\xe8\x9d\xa6\xe7\x60\xdf\x28\xcc\x07\x0d\x49\xc2\xd9\x58\x22\xc5\xdb\x33\x35\x73\xd6\xd6\x98\x99\x79\xa1\x76\x62\x7d\xd6\x71\x8f\x44\x98\xa1\x21\x41\x9a\xdd\xd0\x98\x08\x12\x23\x2c\x11\x46\x32\x1d\x4a\xa2\xd0\x0b\x55\x13\xca\xf4\xdf\x33\x12\xd1\x11\x8d\x1c\xcd\xda\x43\x1b\xf8\xb8\x9c\x32\x8f\x92\x08\x3d\xf0\x67\x1a\x93\x18\x3d\xe3\x24\x25\x68\xc4\x45\x71\x1f\xf7\xd9\xc3\x44\xd3\x61\x3a\xa4\x0c\xf8\x89\xa6\xa5\xdb\x21\x7f\x72\xe4\xfa\x13\xd2\xfd\xa1\x94\xd1\xdf\x53\x92\xcc\x11\x8d\x09\x53\x74\x44\x89\x2c\xb7\xf6\x27\x6e\x8f\x10\x3a\x45\x9a\xce\x44\x28\xa0\x37\x67\x8a\x7c\x51\x12\x9d\xa2\x84\x3e\x11\xf4\xfe\x8a\x4a\x85\x3a\xb7\xbd\xf7\x27\xe8\xbd\x61\x02\x08\xd8\xef\xfb\x03\x50\x38\xfb\xfc\x3f\x1e\x3f\x51\x78\x5c\xe6\x24\xef\x3a\x9a\x45\xdd\x9b\xdb\x2f\x6f\xe1\x7f\xfe\xe0\xb7\x63\xd7\x6b\xf5\x95\x62\xee\x93\xfc\x32\xb1\x37\x49\xd3\xfb\x03\x08\x56\xbc\x3a\xa4\x5e\xab\x6d\x6f\x0e\xdd\x6e\xf9\xea\x90\x47\x76\x77\xe8\x39\xec\xfb\xfe\x78\x7b\x97\xc7\x36\x37\x07\x56\x70\xa4\x31\x65\x86\x03\x64\x0c\x41\x48\xcd\x04\xdc\xb0\x5b\x32\xd3\x6d\x2e\x12\x6f\x66\xde\x5d\xe2\xae\x08\x8f\x2a\x2d\x9c\x77\x42\xa7\x74\xd5\xfa\xf6\x58\xac\x45\x66\xcb\xc9\x59\x3a\x1d\x12\xa1\xc9\xe0\x36\x2b\xcc\x76\xa8\x37\xaf\x4a\x05\x23\x71\x83\x69\xfe\x9e\x12\x31\x5f\x32\xcf\x11\x4e\x64\xdd\x44\x29\x53\x44\xeb\x27\xa5\x9f\x47\x5c\x4c\xb1\xb2\x0f\xfc\xe7\xdf\xd6\x25\x84\xe2\x4f\x64\xd5\xfa\xf7\xcc\x6a\x46\x58\xc2\x36\x98\xa6\x89\xa2\xb3\x84\xa0\x19\x1e\x13\x69\x29\x92\x26\x4a\x9e\xc0\x63\x5a\x27\x22\xe2\x34\xbb\x5e\xa1\x07\x27\x56\xa4\xd2\x1c\xfa\x51\x26\xf3\x33\xf2\x45\x41\x4b\x7d\x06\x82\x05\x90\xc8\xbf\x2e\xf7\x40\xca\xcd\xf6\x8c\xe4\x42\x0d\x86\xf3\xb3\x27\xb2\xd0\x6f\xed\xce\xc1\x0c\x61\xa5\x04\x1d\xa6\x8a\xe8\x79\xeb\x36\x1c\xc7\x03\x86\x6f\xa4\x8f\x26\xac\xe1\xf5\x26\x1c\x53\x41\x22\x98\xdb\x3a\x07\x26\x7b\x4b\xcf\x5b\xf3\xfb\xb9\x99\xbd\x66\xff\x5a\xd8\xaa\xa0\x40\xb6\xe4\x7d\xd6\x67\xe8\x14\x5d\x76\xef\x2f\xba\xd7\x97\xbd\xeb\x4f\xe7\xe8\xfb\x39\x8a\xc9\x08\xa7\x89\x3a\x41\x23\x4a\x92\x58\x22\x2c\x08\x34\x49\x62\x2d\x50\xe9\xc1\x10\x16\x53\x36\x46\x5c\xc4\x44\xec\x8f\x8c\xa5\x5f\x09\x4b\xa7\xa5\x9b\x12\xbe\xcf\x47\x5f\x7a\x43\xcb\x4f\xd9\x4f\x85\x5f\xfe\x67\x81\xc0\x30\x63\xdd\xb7\xd7\xda\xab\x4a\x6c\x47\xac\xf7\x1f\x97\xe8\x76\x00\xb5\x3f\x68\xc8\x41\x43\xae\xa6\x4c\xd0\x90\xb7\xa2\xf0\xfe\x55\xa2\x1d\x4b\x03\x87\xbf\x46\x8e\x43\xdd\x3f\xae\x2b\xe3\x10\xda\x7e\xd0\x8d\x83\x6e\x1c\x74\xe3\xa0\x1b\x17\x49\x15\x74\xe3\xa0\x1b\xb7\x4e\x37\x6e\xb0\x8c\x41\x50\xf3\x05\xb5\x68\x42\x93\x58\x10\xf6\x41\x61\xf9\x34\x20\x5f\x48\x94\x1a\x39\x03\xdc\x34\xc5\x2f\x07\x5a\x91\xe0\x31\x29\x7e\x53\xf8\xc3\xf8\x75\xd6\x7e\x2d\x97\x0c\xd7\x7e\x35\xb3\x45\xac\xfd\x26\x58\x2e\x9a\xbd\x07\xdf\xd0\xb8\xf2\x69\xf8\x66\xc5\x1c\xdc\x33\x4b\x06\xeb\x1e\xa9\x1d\x95\x7b\xc0\x0a\xc0\x95\xcf\x08\xa2\xc4\x7c\x80\x95\x22\xd3\x99\x5a\xd3\x2a\x83\x51\xa2\xc5\xec\x65\x62\xf5\x35\x8f\x49\xd7\xf5\xf7\x1b\x32\xd2\x3d\x89\xd1\x70\x6e\x8f\xc5\x88\x08\xc2\x22\x52\xdf\xc2\x03\x96\x4f\x79\x0b\xab\x64\xf3\x42\x7f\xf2\x23\x17\xfa\xf5\xa3\x70\xc7\x15\x46\x7e\x08\x19\x7d\x93\x93\xfa\xc6\x5c\x78\x9b\x72\x9d\x37\x67\x0b\xdb\x90\x87\x06\xcb\xd9\xf6\x94\x6c\x6a\x67\xe3\x02\xc9\xb9\x54\x64\xba\xd2\xe2\x76\x3c\x84\xb0\x97\x64\x5b\x07\x5c\xba\xa7\xbf\x82\x53\x5f\x94\x3a\xc2\xf1\x5e\x83\x64\xbb\xb2\x97\xb7\x7d\x9e\x2e\x64\x79\xf9\x54\xef\xdd\xf2\x79\xee\xba\xa3\x98\x66\x41\x1e\xde\xf5\x20\xf7\x64\x81\xaa\x5d\x2b\x47\xed\x01\x0c\x60\x85\xed\xa1\xe8\x71\xc9\xce\x9f\x7e\xd5\x37\xda\x19\x0b\xad\x9a\x50\xe9\xd9\x2f\x51\xc4\x85\x11\x87\x63\x7b\xde\x8d\xf9\xa1\xf3\xd0\xb9\xef\x3e\x9c\xa3\x0e\x8a\xb1\xc2\xfa\x80\x0b\x32\x13\x44\x12\xa6\xc0\xb4\xa3\xdf\x57\x73\x34\xe5\x31\x49\x8c\x11\xe2\xa3\x96\xfe\xd1\x25\x56\xf8\x02\x2b\x9c\xf0\xf1\x19\xea\xc0\x9f\xfa\x65\x2a\x11\x4e\x24\x47\xd8\x6d\x2b\x12\xbb\x26\x30\x8b\x1d\x6b\xc1\x28\xe2\xd3\x19\x4d\x32\x6f\x53\x66\x6f\xa3\x2c\xa6\xcf\x34\x4e\x71\x82\xf8\x50\x73\x15\x79\xd6\x67\xdd\x67\xc2\x54\x8a\x93\x64\x8e\x70\x92\x20\xdb\xad\x7b\x00\xc9\x09\x4f\x93\x58\xb7\xeb\x46\x29\xe9\x94\x26\x58\x68\x99\xd6\x8c\xf6\xc6\xb6\x85\x1e\x26\x24\x1b\x2b\x8c\x4b\x53\x73\x8a\x9f\x88\x44\x54\xa1\x19\x97\x92\x0e\x93\xfc\xcc\x3f\xf6\x10\x8c\xfb\xe2\xaa\x07\x26\x9e\x48\x21\x6e\x78\xa8\xeb\xdc\x9a\xf4\x5c\x8f\x53\xcc\x18\x81\x8e\xb9\x9a\x10\x61\xbb\xb7\x0f\xbf\xb6\xb5\xe6\xf1\xfa\xfe\xb6\x7b\xd1\xfb\xd8\xeb\x5e\x2e\x9a\x6b\x1e\x3a\xf7\x3f\x2e\x7e\xfb\xcb\xcd\xdd\x8f\x1f\xaf\x6e\x7e\x59\xfc\xe5\xaa\xf3\x78\x7d\xf1\xc3\xe0\xf6\xaa\x73\xbd\xf8\xa3\xdd\x56\x8d\x2d\x3f\xfe\xc8\x76\x76\xb6\x8e\xce\x28\x14\x8c\xfa\x6b\x2c\xfb\xae\x8d\xfa\x27\x6f\xd7\xaa\x3f\xa2\x09\x18\x1d\x1a\x5b\xf4\x33\xab\x91\x7d\x13\xcd\xb0\x94\x46\x0e\x34\x23\x38\xeb\xb3\xcf\x5c\x68\x76\x3d\xe2\x9a\x23\x6a\x59\x51\x89\x34\x52\x94\x8d\xb3\x97\xce\x51\x3f\xfd\xee\xbb\xbf\x46\x57\x94\x3d\xc1\x27\xd2\x46\xe2\x04\x97\x47\x70\x79\xb4\xce\xe5\xf1\x87\x8a\x57\xf7\xef\x1e\x08\x36\xfe\x60\xe3\xdf\x9f\x8d\x3f\x98\xf8\xbd\x31\x04\xfb\xf6\xb6\x84\x08\x06\xb0\x60\xdf\xde\x9e\x10\xc1\xbe\xdd\xd2\x19\x87\xe3\x1d\xec\xdb\xc1\xbe\x1d\xec\xdb\xc1\xbe\x1d\xec\xdb\xc1\xbe\xfd\xd5\xd8\xb7\x5b\x18\xf2\x14\x8c\xfc\xc1\xc8\x1f\x8c\xfc\xc1\xc8\x1f\x8c\xfc\xc1\xc8\x7f\x3c\x46\x7e\x2d\xed\x7e\x28\x87\xfe\xef\x09\xf4\x4f\x0b\x97\x6c\x96\x2a\x10\x25\x79\xaa\xf4\x47\xdd\x3f\xec\x95\x25\x10\x00\xcd\x0c\xca\x9f\x88\xca\x1e\xd4\xa2\xed\x51\xc4\x8a\xff\xc2\xc5\xd3\x28\xe1\x2f\xd9\xc8\x3f\x11\xa5\x07\x7f\x67\x7b\x09\x60\x80\x01\x0c\x10\x05\xa8\x83\x5d\x43\x1d\xb4\xca\x44\x7d\x50\xfe\x7e\xd4\x2c\x3d\x70\xf4\xc0\xfc\x02\xf3\xab\xa3\xcd\x51\x32\xbf\x66\x53\x3b\x3a\xeb\xcd\xfe\x79\x7a\xd1\xde\x95\x0b\xee\x15\x29\xb9\xf5\xd1\x38\xb5\xc1\x36\x35\xb1\x34\x5e\xa8\xcc\x41\xae\x89\x62\x40\xca\x8a\xab\xa2\xf0\xf0\xd1\x68\x00\x85\x51\x1f\xfe\xae\x78\xe3\x79\xa1\x5f\x4b\x58\x4c\x88\x7a\xd9\x90\x50\x6f\xf8\xd2\x3c\x5c\xcc\xca\xe1\x6f\xbb\xaf\xf6\x4e\x0b\x57\x9a\xfd\x17\x18\x7e\x60\xf8\x81\xe1\xbf\x12\xc3\xdf\x80\xee\x41\x85\x5b\xb8\xd4\x2a\x61\x97\x9a\xe2\x2c\xad\x93\x74\xb1\x46\x96\x45\xe3\xb4\x8a\x15\x79\x14\x95\x89\x13\x55\x99\x12\x8b\xa9\x11\x95\xb9\x10\xdb\x25\x3f\x6c\x7a\x57\x37\x4f\x67\xf8\x44\x54\xe1\xe1\xa3\xd1\x3f\x0b\xa3\x3e\xfc\x65\xfd\xea\x61\x3b\xaf\xc5\xa7\xbf\xbe\xd4\x8d\x90\xab\xb1\x47\xd2\xbd\x75\xb1\xa6\xbd\xd9\x18\x5f\x41\xfa\x45\xc8\xb7\x58\x8b\x46\x6f\x2b\xc1\xe2\xad\x66\x54\x1c\x67\x0a\x45\xc8\x99\x08\x39\x13\x3b\x55\x79\x4b\xbf\x7e\x55\x39\x13\xc7\x9c\x24\x71\x78\xf3\x44\x30\x39\xb4\xdf\xe4\x10\x2c\x0e\xf6\x5f\xd0\xbe\xd7\x9e\x79\x10\xed\x83\xf6\xdd\x64\xe6\x41\xfb\x0e\xda\x77\x0b\x8f\x68\xd0\xbe\x83\xf6\x1d\xb4\xef\xa0\x7d\x07\xed\x1b\x05\xed\xdb\x6b\xe8\xb5\x52\x6b\xdb\xe0\xdc\x3c\x2a\x9b\x43\x3e\xf5\x81\x3b\xe0\x8b\xe9\xa8\x05\xb6\xdb\x24\x43\x15\x3e\x39\xa5\x7e\x5d\xc4\xc4\x5a\x2d\xfd\x32\x1f\x6c\x17\x98\xe4\x6f\x96\x55\xac\x50\xd8\x17\xde\x3b\x8a\x18\x81\x85\x51\x87\xb4\xd4\x4d\x45\x9e\x57\x12\x1a\xf6\x44\x81\x23\xb9\xbe\xd6\x5f\xa8\x37\xac\x4b\x06\x1d\x72\xfb\x14\xba\xa3\xd1\x1d\x8f\x47\x67\x3c\xbc\x6c\xf1\x16\xc5\x89\x20\x4d\x78\x63\x08\x17\x6f\xb8\x78\xc3\xc5\x1b\x2e\xde\x70\xf1\x86\x0c\x7c\xfb\xfc\x5e\xe5\x89\x92\x30\xd1\x08\x4a\x6b\xe7\x35\x1c\x2a\x44\x09\xef\x06\x5e\x55\x91\xa1\xfc\x36\x25\xf2\x6f\x47\x29\x53\x1c\xa2\x28\x43\x10\x2a\x8e\x44\xa8\x78\x93\xb6\xa4\x20\x29\x05\x49\xa9\x9a\x32\x8d\x24\xa5\x3e\x7b\x98\x68\x3a\x4c\x87\x94\x65\xde\x3c\xb7\x43\xfe\xe4\xc8\xf5\x27\xa4\xfb\x43\x29\xa3\xbf\xa7\x24\x99\xe7\x3c\x49\x96\x5b\xcb\x90\x3d\xd1\x29\xd2\x74\x26\x42\x01\xbd\x39\x53\xe4\x8b\x92\xe8\x14\x25\xf4\x89\xa0\xf7\x9a\x31\xa3\xce\x6d\xef\xfd\x09\x7a\x7f\x05\x05\x86\xd0\x2c\xc1\x4c\xbe\x6f\x8d\xe3\x26\xc0\x2a\xef\x0b\x56\x39\xa0\x2a\x07\x54\xe5\xa6\x04\x0a\xa8\xca\x01\x55\xf9\x78\x51\x95\x77\xa6\x1f\x6e\x88\xcb\xf9\x2a\x9a\xe2\x71\xfa\xb2\x83\xa6\x88\x82\xa6\x18\x34\xc5\xa0\x29\x06\x4d\xf1\x48\x34\xc5\x76\x50\x38\xa8\x89\x41\x4d\x0c\x6a\xe2\x0e\x89\x13\xd4\xc4\xa0\x26\x06\x35\x71\x41\x4d\x3c\x5e\xcf\xe1\x5f\x83\x3e\x18\xf4\x41\xff\xfb\xe3\xd3\x07\x83\xea\x14\x54\xa7\x6a\xca\x1c\xa7\xea\xd4\x1a\xd9\xe7\x18\x43\x8a\x82\x52\xd8\x9c\x10\x41\x29\x6c\x4c\xaa\xa0\x14\x2e\x21\x4e\x50\x0a\x83\x52\x18\x94\xc2\xc6\x4a\xe1\x31\xb9\x0b\x83\x76\x18\xb4\x43\xff\xfb\xa0\x1d\x06\xed\x30\x68\x87\xc1\xb1\x16\x54\xc3\xa0\x1a\x06\xd5\x30\xa8\x86\xab\x88\x13\x54\xc3\xa0\x1a\x7e\x5d\xaa\x21\x79\x26\x4c\x49\x28\x86\xe8\x2b\x4a\xef\x66\x5c\xd6\x2b\x78\x3e\x77\xa8\x50\xee\xa0\xcd\x62\x51\x42\x40\x6d\xfb\x0d\x4d\xb0\x44\x3c\x8a\x52\x51\x3a\x03\x65\xf5\xee\x42\x10\xac\x08\xb4\xa0\x5f\x3c\x06\xb5\x6e\x71\xba\x87\x02\x20\x1e\xf2\x78\x61\xb7\x9b\x83\x50\xf5\xcb\x72\x31\x6b\x67\x53\xff\x3d\x25\xcd\xb4\xda\x3d\x6e\x6a\x88\x86\x36\x9b\x71\xb1\xda\xd9\x8b\x2d\xaa\xbf\xe3\x5d\xbf\x50\xab\x7f\xa3\x9d\x9f\xb5\xa2\x5f\x3e\x8a\x18\xe8\xea\x79\x1f\xea\x08\x54\x2f\xf2\x1b\x0b\xbb\x7d\xf5\x73\x5e\xb7\xc6\x2d\x3b\xeb\x95\xc5\x0d\xdb\x7d\xc1\x1d\xc5\x11\x7f\xbd\x1b\xae\x76\x5d\xc3\x09\xff\xea\x6e\xf2\x19\x16\x84\xa9\x41\x93\x82\xa6\x0a\xcb\xa7\x1d\x9f\xf9\x42\xa1\x89\x8d\xce\x3c\xb4\x70\x34\x67\x7e\x71\xbe\x87\x3d\xf3\x8d\x57\x3b\x70\x82\xdd\x72\x82\xaa\x85\x6f\x03\x27\x68\xf7\x99\x0e\x47\x1a\xfe\x85\x4d\xbd\xde\xa6\x3e\x1e\x5d\xf4\x18\x36\xf8\xeb\xaa\xa2\xaf\xbe\xc9\xdb\xa9\xa5\x65\x35\xdf\x1a\x6f\xf1\x07\x41\xc7\x63\x22\x8c\xa5\x39\xd2\x5b\xd1\xba\x33\x97\x80\x9e\xe6\x55\xce\x56\x6e\xeb\xec\xd1\x63\xd8\xd2\xd9\x60\xcd\xd8\xbf\x9a\xbd\xbc\x30\xef\x96\x6c\xe2\x22\xd0\x82\x20\x11\x7f\x26\xa2\xf1\xce\xbe\x23\xb0\x9d\x81\x79\xcf\x04\x79\xa6\x3c\x95\xc9\xfc\x54\xa4\x0c\xb9\x9b\x00\x65\x7d\x99\x28\x9b\x17\x9a\x24\x88\xb3\x64\x8e\xa4\xc2\x42\xb9\x9f\xd9\x18\x8d\x04\x9f\xc2\x11\x49\xb0\x54\xe8\x89\xf1\x17\x86\x46\x98\x26\xa9\x20\x68\xc6\x29\x53\x67\x7d\xd6\x63\xe8\xce\x8c\x11\xaa\xa2\x9c\xa0\x54\xea\x83\x15\x61\xc6\xb8\x42\xd1\x04\xb3\x31\x41\x98\xcd\x6d\x79\xc1\x7c\x9b\x20\x2e\x50\x3a\x8b\xb1\x22\xd0\x45\x09\x52\x32\x1b\x23\x84\x1d\x50\x89\xa8\x44\xe4\x8b\x12\x64\x4a\x92\xb9\xee\x43\x1f\x04\xc5\x91\xa5\x8f\x19\xaa\x2d\x56\x46\x84\xe0\x42\x42\x3d\x95\xe1\xfc\x9f\x98\x29\xca\x08\x02\x4f\x88\x34\x21\x05\xa7\xe8\x8a\x4b\xf0\xcb\xfe\xf8\x77\x89\xa2\x24\x95\x8a\x88\x13\x34\x4c\xc7\x12\x51\x86\x66\x09\x56\x23\x2e\xa6\x7a\x84\x94\x49\x85\x87\x34\xa1\x6a\x7e\x82\xa6\x38\x9a\x98\xb6\x80\x06\xf2\xa4\xcf\x62\xfe\xc2\xa4\x12\x04\x67\xbd\xbb\x1f\xd1\x37\xfe\x6f\x66\x37\xc8\x6f\x4f\xa0\xa8\x1a\x9d\xce\x92\xb9\x3f\xfc\x7c\xf9\xcd\x9a\xe8\x46\x48\x8c\x86\x24\xc2\xa9\xb4\x91\x51\x4a\xcc\x11\xf9\x32\xc1\xa9\x84\xb5\xd3\xd3\xb3\x15\x69\x22\x3e\x9d\x25\x44\x11\x44\x47\x48\x09\xad\x79\xe0\x31\xa6\x9a\x74\xf7\x84\x34\xe0\x68\x76\x01\xed\x11\xf8\x0d\xfc\x6b\x53\x2e\x08\x8a\x89\xc2\x34\x59\x1a\x2d\x67\xdf\xcd\xda\x3a\x0a\xd5\xf3\x95\x78\x5e\x50\x27\xf7\xca\xc8\x8b\xdb\xb8\x7d\x9c\x3c\x81\xe0\xa5\x1d\x08\x29\xcc\x46\x55\x45\x38\xd9\x52\x5e\xb9\xb3\x83\x0a\xc7\x37\x1c\xdf\xf2\x48\x0e\x7f\x7c\xcd\x5e\x6c\xe9\xf9\x3d\x58\x62\x73\xb3\x72\xca\x57\x54\xaa\xec\xc9\xe3\xc0\xb2\xca\x86\x7b\x88\xa8\xf4\x37\x79\x58\x43\x10\x77\x08\xe2\xae\xa5\xcc\x71\x06\x71\xb7\x26\x5c\x31\x04\x3c\xef\x29\xe0\x99\xca\x10\xf1\x1c\x22\x9e\x9b\x12\x28\x44\x3c\x87\x88\xe7\xe3\x8d\x78\x5e\x53\x77\xd8\x30\xff\xb5\xce\x35\xb7\x8e\xfe\xf0\x89\xa8\x23\x55\xfa\x83\xe6\x10\x34\x87\xa0\x39\xec\x5c\x73\xe0\xc2\x79\x30\x5a\x50\xb5\x6c\x57\x5c\xda\xbd\xfd\x2e\x26\x09\x51\xa4\xde\xd6\x4a\xc4\x54\x2b\x44\x46\x02\xa1\x4c\x8b\xaa\x63\x41\xa4\xdc\x96\xcd\x66\x0d\x1f\x29\xb3\xcd\xc6\x1f\x8c\xac\x81\xfb\xd6\x4c\x2d\x70\xdf\x37\xc6\x7d\x8f\xca\x6d\xe0\x71\xa8\x43\xf9\x0d\xb2\x5b\x65\x96\xd6\x4b\xea\x8f\x26\xb6\x21\x0f\xb6\x30\x3b\x5c\xab\x5b\x8a\x67\x87\xdb\xee\xf3\x2d\x6f\x19\xd3\xd7\x91\x5e\x31\x66\xf0\xe1\x7e\x09\xf7\x4b\xcd\xd4\xc2\xfd\x12\xee\x97\xd7\xbb\x5f\x1c\x7b\x6a\x95\x53\x9a\x8b\x71\xc1\x64\xb4\xec\x22\x3a\x54\xb0\xeb\x71\xdd\x3a\x87\x0d\x1d\x79\x7b\x57\x4e\x7b\x0e\x68\xdb\xe2\x77\x43\xc8\x6e\x08\xd9\x3d\xaa\x90\xdd\xc0\xb7\x8f\x80\xcb\xb5\x2e\xb8\xf5\x38\xe2\x59\xc3\xde\x3e\x8a\xbd\xdd\xb6\xc8\xcf\x56\x07\x7b\x1e\xd5\x9e\x3e\x50\xac\x67\x30\x7f\x04\xf3\x47\x35\x65\x42\x58\x64\x80\xb7\x5d\x9c\x56\x88\xf6\x0c\xd1\x9e\x21\xda\x73\x97\xc4\x09\xd1\x9e\x21\xda\xf3\xab\x8d\xf6\x6c\x79\x80\xe7\x51\x69\x0c\x41\x5b\x08\xda\x42\x70\x96\xae\x39\xb5\xa3\x93\xd1\x77\xc5\x99\xdd\xdb\x2d\x8a\xf0\x3c\x2a\x6e\xfb\x1a\x01\x9e\x81\xfd\x06\xf6\x5b\x4d\x99\xa3\x64\xbf\xed\x31\xa4\x87\x58\xc8\x85\x58\xc8\xa3\x62\xc6\x07\x0f\x85\x0c\x9c\x38\x70\xe2\x6a\xca\x04\x4e\x7c\xfc\x51\x83\xc6\xab\x3a\x98\x25\x98\x0d\x68\xec\x85\x0e\x7e\xf8\x57\x6e\xac\xd8\x97\x67\x53\x1f\xad\xd8\x54\x21\xcd\xaa\x7e\x8a\xdf\xf4\x2b\x49\xee\xe8\x40\x7c\xa8\x87\xb1\xb2\x1e\xab\xf1\x8d\xdc\x26\x98\xf5\xe2\xe3\x00\xbb\xa9\x9c\xfe\x21\x9c\xa1\x6f\x2f\xd4\x70\x9b\x4b\x0a\x2b\x70\xba\x61\xca\x8c\xd9\x35\xaf\x26\x5b\x30\x2a\xb7\x63\xa2\xdb\x5c\x59\xde\xc4\xbc\x5b\xcb\x5d\x46\x1e\x51\xda\x37\xed\xe0\x8b\x0b\xa5\x26\x83\xb7\xa9\xe1\x84\x83\xb7\xa9\xbd\xde\xa6\x06\xcb\xb8\x17\x17\xf2\x81\x8f\xe7\x41\x65\xd6\xa3\x96\x54\x83\xa0\x8a\x82\x58\x17\xc4\xba\xfa\x59\x07\xb1\x2e\x88\x75\x41\xac\x0b\x62\x5d\x10\xeb\x5e\x5f\xac\x6b\x30\xcd\xaf\x36\xca\x60\x95\xa8\xda\xbc\xf4\x90\xc9\xf1\x81\x54\xc0\x74\x96\x70\x1c\x2f\x8b\xf4\xca\x85\xc9\xdf\x50\x2e\xb8\x2d\x91\x40\x4d\xeb\xf9\x6b\xc7\x20\x80\xe6\xa3\xfd\xca\xf2\x9f\x16\x27\xde\x16\x6f\x41\x11\xbe\xb2\xa5\x7b\xfb\x28\xdc\x00\xaf\xb5\xb9\xdf\x24\xcc\x4d\x38\xb1\x0d\x4f\xec\xe1\xf2\x17\xab\x4f\xf1\x1a\x56\x12\xf9\xb7\xe3\x3a\xc6\xa1\x76\x45\xc0\xa8\xaa\x98\x5a\x88\x36\x09\x49\x9a\x21\x9b\xf1\xcd\x99\xda\x42\x36\x63\xc8\x66\x0c\x86\xc8\xe5\xd3\x0e\x86\xc8\x37\x91\xcd\xb8\xbe\x32\xb1\x61\x72\xe3\x61\xd4\x8a\x23\xb3\x0e\x04\xb5\x22\xa8\x15\x15\x53\x0b\x6a\xc5\x57\xa8\x56\xb4\x83\xc2\x41\xa7\x08\x3a\x45\xd0\x29\x82\x4e\x11\x74\x8a\x9d\x93\x31\xe8\x14\x0d\x74\x0a\xf8\x64\x21\x86\xd7\x56\x30\xd6\x54\x2c\x56\xe0\xa8\x1c\xad\xcf\x31\x68\x14\x41\xa3\x08\x1a\xc5\xc1\x35\x8a\xd6\x4c\xc8\xb2\xcf\x15\x73\xba\x77\x0b\x52\x02\x74\x6f\xdf\x7c\xdc\x88\x06\xd0\xd2\x0a\x61\xa2\xa8\xa0\x65\xbb\x4e\xbf\xea\xeb\x28\x26\x9a\x1c\xc4\xf2\x3c\xd8\x1a\x45\x5c\x18\xa6\x1c\xdb\x5d\x6e\xe4\x89\xce\x43\xe7\xbe\xfb\x70\x8e\x3a\x28\xc6\x0a\xeb\x6d\x2d\xc8\x4c\x10\x49\x98\x02\x59\x8d\x40\x1c\x3d\xc0\xea\x27\x46\xaa\xf8\xa8\xef\x1f\x74\x89\x15\xbe\xc0\x0a\x27\x7c\x7c\x86\x3a\xf0\xa7\x7e\x99\x4a\x84\x13\xc9\x11\x76\xa4\x27\xb1\x6b\x02\xb3\xd8\x1d\x28\x0c\x68\xf1\x34\xc9\x94\xd3\x4c\xbd\xa0\x2c\xa6\xcf\x34\x4e\x71\x92\xa5\x27\xf4\x59\xf7\x99\x30\x95\xe2\x24\x99\x23\x9c\x24\xc8\x76\xeb\x1e\x70\x00\xf4\x43\x92\x8d\x52\xd2\x29\x4d\xb0\xd0\xec\xd8\x8c\xf6\xc6\xb6\x85\xb4\x62\xec\xc6\x0a\xe3\xd2\xd4\x9c\xe2\x27\x22\x11\x55\x68\xc6\xa5\xa4\xc3\x24\x3f\x00\x8f\x3d\x04\xe3\xbe\xb8\xea\x81\xcc\x16\x29\xc4\x0d\xe7\x70\x9d\x5b\x05\xc6\xf5\x38\xc5\x8c\x11\xe8\x98\xab\x09\x11\xb6\x7b\xfb\xf0\x6b\x8b\x5f\x8f\xd7\xf7\xb7\xdd\x8b\xde\xc7\x5e\xf7\x72\x51\xfe\x7a\xe8\xdc\xff\xb8\xf8\xed\x2f\x37\x77\x3f\x7e\xbc\xba\xf9\x65\xf1\x97\xab\xce\xe3\xf5\xc5\x0f\x83\xdb\xab\xce\xf5\xe2\x8f\x76\x5b\x35\x16\xe5\xfc\x91\xed\x43\x96\x73\x6f\x37\xc0\xf4\xb0\x87\x4b\x61\x95\x4a\x53\x53\x46\x90\x31\x95\x0a\xd8\x7f\x13\x29\x6c\x35\x94\xc7\xd1\x4a\x5f\xa1\xb0\x59\x90\xc5\x82\x2c\x16\x64\xb1\x63\x93\xc5\x0e\x67\x12\x38\xa2\x30\xc5\xbf\x1e\xd7\xdd\x13\xca\x2e\x04\xe6\xdc\x7e\xe6\xdc\x3a\xd7\x5b\x6b\x4c\xe7\xc7\x08\xe9\x1a\x9c\x8a\xcd\x09\x11\x9c\x8a\xcd\x69\x15\x9c\x8a\x4b\x88\x13\x9c\x8a\xc1\xa9\xf8\x15\x3b\x15\x8f\x32\x36\x31\xa8\x12\xee\xb9\xa0\x4a\x04\x55\xe2\x8d\xaa\x12\xad\xa1\x70\xd0\x23\x82\x1e\x11\xf4\x88\xa0\x47\x2c\x27\x4e\xd0\x23\x82\x1e\x11\xf4\x88\x63\x8b\x47\x3c\x2e\x4d\x22\x68\x11\x41\x8b\x68\xb7\x16\xd1\x9a\x09\x1d\x8f\xb7\xb8\xd9\x7c\x42\xe4\x5e\x88\xdc\x0b\x91\x7b\xb5\x91\x7b\x6f\x54\x93\xdf\x95\xfc\xe6\xde\x6e\x5b\x40\xe2\x71\x89\x5f\xa1\xba\x58\xf6\x6b\x10\xc6\x82\x30\xf6\x95\x0a\x63\x2d\x02\x51\x6c\x45\x91\xb4\x29\x56\xd1\x04\x0f\x13\x32\xc8\x6c\x59\xb2\xa9\x7a\x7f\x45\xa5\x92\x28\x4a\xa5\xe2\xd3\xfa\xcb\xe5\xb3\xeb\xa1\x93\x75\x70\xc1\xd9\x88\x8e\x53\x73\xb7\xfc\x06\x5b\xdf\x3b\xd1\xb9\x80\x3b\x9f\x91\x55\x7e\xc5\x8a\xd6\x8f\xe2\x5a\xaa\x1e\xfa\xa1\x6e\xa7\x75\xf4\x91\xdc\x76\x69\x95\x09\x2d\x42\x0e\xee\xba\xf7\x37\x8f\x77\x17\xdd\x73\xd4\x01\x11\x0b\xdc\x09\x66\x2b\xd0\x7f\xea\x49\x21\x85\xe5\x53\xbe\x96\xc2\x6c\x73\x09\x72\x36\xf8\x2f\xb4\xc8\x8f\x4e\xd1\xc5\xd5\xe3\xfd\x43\xf7\xae\xa6\x41\xbb\x51\xa0\x54\x2a\x99\xce\x12\xac\x48\x8c\x9e\xd2\x21\x11\x8c\x68\x69\x27\x4a\x52\x2d\xdc\xe4\x5e\x0d\xd3\x68\xf7\xbf\xbb\x17\x8f\x0f\xbd\x9b\xeb\xc1\x4f\x8f\xdd\xc7\xee\x39\x72\x3b\x4e\x37\xab\xc7\xa5\x47\x11\xcf\x19\x9e\x6a\xc5\x4a\x7f\x91\x17\x67\xfd\x3d\x25\x29\x41\x58\x4a\x3a\x66\x53\xc2\x54\xb9\x45\x37\xe0\xab\xce\xf7\xdd\xab\x62\xcb\x13\x82\x7e\xfc\x7b\x3e\xa8\x04\x0f\x49\x62\xdd\x2c\xe0\x39\xd0\x1b\x3d\xef\xc8\xfa\x5f\x52\x43\xd5\x9f\x1e\x3b\x57\xbd\x87\x5f\x07\x37\x1f\x07\xf7\xdd\xbb\x9f\x7b\x17\xdd\x81\x15\x96\x2f\x3a\xba\xdf\x42\x4f\x56\xa6\x46\xbf\xa7\x38\xd1\x4a\x17\x1f\x81\xdf\x82\x46\x04\xbd\x4c\x08\x43\x29\x83\x1d\x67\x34\x39\xad\xde\x65\x9d\xea\x53\x66\x66\x74\x7b\xf5\xf8\xa9\x77\x3d\xb8\xf9\xb9\x7b\x77\xd7\xbb\xec\x9e\xa3\x7b\x92\x80\xae\xe3\x88\x0e\xab\x38\x4b\xd2\x31\x65\x88\x4e\x67\x09\xd1\xd4\x30\xba\xdc\x90\x4c\xf0\x33\xe5\xc2\x1e\xdd\x31\x7d\x26\xcc\xd0\x11\xce\x2c\xb4\xef\x74\x8a\x81\x47\xba\x9b\xeb\x8f\xbd\x4f\xe7\xa8\x13\xc7\xd9\x1c\x24\xb4\x51\xd8\x39\x2f\x5c\x3c\x8d\x12\xfe\x72\x5a\x1c\xb6\x66\x0e\xd0\xbd\xd9\x44\xfc\x99\x08\x41\x63\x52\xda\x47\x9d\xfb\xfb\xde\xa7\xeb\xcf\xdd\xeb\x07\xa0\x98\x12\x3c\x91\x68\xc2\x5f\xc0\x42\x0f\x33\x04\xc3\xfd\x33\xa6\x09\x74\xe6\x16\x8b\x33\xf4\x32\xa1\xe0\xd5\xa1\xd2\x27\x98\x51\x3b\x45\xca\x5e\xdd\xe8\x5c\x38\x78\x8b\xda\x58\xf9\x24\x2d\x3e\x51\x3a\x16\xcb\x1e\x28\xec\xf2\xc5\x07\x57\xed\xd6\xc5\x37\x4a\xdb\xad\x5e\x07\x5d\xd8\x2f\xf5\x33\xcd\xd7\xba\xb1\x0a\x5a\xa4\xe1\x9a\xc2\xc3\xba\x1a\xa8\xf1\x81\xf9\x4a\x28\xb8\xd4\x9c\x98\xef\x78\xe2\x71\x69\xa3\x8d\xc5\x88\xbc\xe0\xea\x91\x0b\x14\xc7\x91\x78\xf7\xba\x12\xc5\x61\x8f\xc6\xa1\xb5\x86\x20\x2f\x05\x79\x29\xc8\x4b\x41\x5e\x0a\xf2\x52\xf6\x6f\xcf\xf2\x04\x51\x82\x46\xf2\x43\xb6\xaf\xf6\x0b\xca\x4a\xa4\xde\xb0\x8a\x4e\x09\xb2\x3d\xdb\x93\x5a\x2b\x84\x64\xa5\xee\x97\x5a\xcc\x3f\x11\x95\x3d\xf8\xd9\x34\x7c\x14\xc2\xc4\x2f\x96\xa3\x64\x83\xff\x44\x94\x1d\x7f\x48\xe8\x0f\x09\xfd\x35\x53\x0b\x5e\x81\xed\xbd\x02\x5c\x20\x39\x97\x8a\x4c\x8f\xc4\x3f\x10\x93\xd9\x62\x87\xa5\x89\xc1\x33\x26\xbe\x6b\x21\x1c\xd9\x78\xce\x6d\xec\x40\x42\x9e\x49\x02\x82\xac\x12\xf8\x99\x08\x69\xc5\xb3\xa1\x20\xf8\x49\xcb\xb4\x31\x7f\xf1\x85\xb3\x98\x28\x4c\x93\x7d\xe8\xcf\x4d\xc2\x95\xff\xfa\x97\x57\xbd\x0f\x8f\xf7\x0a\x0c\x37\x60\x70\x21\x87\xcb\xe2\x2b\xbc\x2c\x8e\x31\x88\x27\xdc\x81\x6d\xb9\x03\x35\xb9\xe3\x81\x0b\xe7\xfb\xf0\xaf\x82\x51\xee\xdf\xfb\xd2\x0f\xef\x20\x3f\x4a\x2e\xbb\x08\x35\x97\x8a\xbb\xb0\x7c\xbf\xd9\x20\xc0\x15\x37\xa2\xf7\xc6\x51\xe8\x83\xde\x78\xdb\xe4\x9a\xbe\xf3\x0d\xfb\xee\x9e\x98\x12\x85\x63\xac\xb0\x3e\x42\x63\xa2\xce\xd0\x0d\x83\xdf\x1e\xb0\x7c\x3a\x41\xee\x5e\xd7\xbc\x33\x0f\xc5\xf0\x53\x74\xf6\xc4\x2a\x1b\xda\xac\x5e\x3b\x78\xb3\x8d\x1c\x3d\x68\xe9\xbb\x9c\x5a\x10\xbc\x42\x3a\x76\x9b\x71\xf3\xdc\xdb\x8d\xa2\x9d\x77\x77\x2b\x9b\x16\x8f\xf8\x62\x3e\x6c\x7c\xf3\x4e\xaf\xe9\x14\x86\x1e\xee\x60\xf3\x2f\xdc\xc1\xe1\x0e\x0e\x77\xf0\x32\xca\x84\x3b\xf8\x88\x03\xe0\x2b\xae\xac\x57\x8d\x80\x6f\x62\x56\x30\x36\x85\xdc\xa0\xb0\x26\x50\x6f\x6e\x43\x58\x09\xaf\x55\x21\xb5\xac\xc4\xd6\xca\xdf\xa1\x47\x12\xac\xe6\xcd\xf2\x10\xf8\x5a\x3b\x15\x56\x0c\xc2\x4b\xb0\x2a\xec\x51\xa2\x79\x7b\xe2\xcc\x36\xb2\x0c\x56\x70\xc9\x60\xca\xcc\x9d\x94\x67\x7b\xcb\x03\xec\xb0\x35\x27\xba\x8d\x64\xe3\x4d\xcc\x13\x6e\x9c\xcc\xe2\x11\xa5\x25\x8b\xba\x17\x18\xae\xd7\xb1\xe3\xbf\x3e\xf4\x16\x79\xbb\xc8\x5b\x01\x5c\x6a\xad\x43\x12\xc0\xa5\x0e\x01\x2e\xd5\x60\x19\xf7\x82\x18\x77\xe0\xe3\xf9\x9a\xaa\xc3\xf1\x38\x21\x8f\x4c\x67\x38\x2a\x7d\x21\xf8\x20\xf7\x6f\xff\x0c\xa6\xc2\x60\x2a\xac\xa6\x4c\x30\x15\x7e\x5d\xe1\x5a\xbb\xba\xef\xdd\xdb\xaf\xed\x85\x3c\xb2\x9b\x39\x38\x21\xc3\x25\x1c\x2e\xe1\x70\x09\x87\x4b\x78\x57\x14\x0e\xfe\xba\x35\x95\xee\xa3\xf0\xd2\x1d\xd9\xb5\x1e\x9c\x74\xe1\xc6\x77\x2f\x07\x97\xd6\xaa\x79\x06\x97\x56\x70\x69\x05\x97\x56\x70\x69\x05\x97\x56\xf6\x7d\x70\x69\x1d\x74\xb7\x7e\xb5\x66\xbb\x6a\x8d\x81\xc7\x64\x50\x81\x24\x93\x7d\x35\xf0\xd3\x06\x0b\xdf\x16\xdc\x77\x85\x5f\x7c\x5f\x5e\xe1\x87\xbc\x5c\x0e\xf4\x4b\xe3\xb5\xf3\xf0\x97\x99\x13\x79\x4c\x1a\xe7\xdd\x17\x1e\x6e\x7b\x5c\xa0\x9b\xa8\x51\x3d\xfc\x91\x1f\x20\xcf\xbe\xbc\x13\xde\x58\xf4\x59\xcd\xae\x7e\x8b\x96\xba\x8a\x33\x1a\xcc\x76\x2b\x09\xf5\x86\x01\x07\x2c\x13\x3e\xc0\x78\x0e\x7f\x87\x39\xe0\xbf\x41\xc5\x4d\x56\xfd\x5b\x7e\x9f\x55\xff\x9e\xdd\x6a\xd5\x3f\xef\xa7\xa4\x74\xf3\x4b\x0d\xec\x68\xfe\xd3\x47\x12\xee\xee\x0f\xf9\x10\xb6\xb4\xda\x8d\xf1\xc6\x2e\xb6\xa5\x9b\xfc\xcd\x5d\x6f\xcb\x8e\x6c\xb8\xe4\x1a\x92\xeb\xad\x5e\x75\xa1\x26\xf4\x32\x2b\x5e\x28\xba\xdc\x42\x2b\x45\x30\x22\x06\x23\xe2\x31\x1a\x11\x4d\xf0\xc1\x60\x86\x05\x61\xaa\x42\xb7\x28\x5f\x27\xf0\xb8\x5f\xa4\xd3\x49\x1d\xd0\x00\xd2\xa2\x3d\xb2\x17\x72\x76\x55\xbd\xb1\x40\xf9\x92\xf6\xf2\x86\xed\x6c\x2d\xd7\x47\xda\x63\x66\x7b\xab\x52\x7a\x30\x42\x05\x23\x54\x79\x9e\x87\x33\x42\x6d\x40\xf7\xe0\x2c\x5a\x7a\x55\x7d\x25\x86\xb4\x96\xdf\x5b\x6d\xb2\xa3\xbd\xd5\x9b\x2b\xd8\x97\x76\x40\xae\xb7\x7a\x8b\xbd\x96\x49\xf9\xf0\x5a\x7a\xb0\xa4\x05\x4b\x5a\xb0\xa4\x05\x4b\x5a\xb0\xa4\xf9\xdf\x07\x4b\xda\x32\xba\x1f\x4c\x3d\xb1\x22\x90\x5f\x66\xf5\x5f\xf9\xe7\x4c\x2d\xf1\x55\x8b\x65\x19\xac\x17\x82\xc0\xa9\xe0\xc2\xe6\x3f\xee\xa2\xfc\x2a\x56\x05\xa1\x17\x2a\x1a\x2c\xd1\x45\x4c\x56\xd1\xad\x79\xfa\xb8\xca\xb8\x2f\x0c\xfa\xb0\xf9\xaf\x8b\x0b\xdf\xec\x00\xb9\x95\xa1\xa6\xc4\xa6\x57\xc7\x51\xcb\xdd\x7c\x94\x5f\x0c\x12\xbd\xd0\x24\xd1\x92\x8c\x95\xda\x5a\x22\x8d\xbe\x7a\x56\x5c\xed\xca\xbf\x6a\x6e\x5c\x15\x77\xa8\x62\x09\x4d\xac\xe3\xbb\x2a\xc3\xec\x36\x1b\x94\x90\x05\xbd\x6f\x85\x39\xfd\x6d\x70\x82\x4f\x44\x1d\x8a\x0d\x6c\x7a\xf6\x97\x9e\x7b\x41\x46\x44\x10\x16\x91\x16\x66\x64\xad\x93\x2a\xf8\x8b\x99\xa4\xcd\x13\xcc\xea\x94\xfb\x53\x55\xdc\xea\x69\x05\x51\x37\x54\x6f\x0e\xd5\x9b\x43\xf5\xe6\xf2\x51\x0f\xd5\x9b\xdf\x46\xf5\xe6\x06\x5c\x76\x07\xb6\xbd\xe5\x06\xdb\x96\xea\x5d\xee\xed\x77\x31\x49\x88\x22\xb5\x82\xd2\x25\xfc\xfc\x5a\x82\x92\xe9\xfd\x6d\xc8\x4a\x66\x2e\x41\x5c\xfa\x6a\x94\x25\xb7\xe0\xad\x50\x96\xcc\x59\xf3\x75\x26\x48\xae\xf0\x94\x6b\x93\x51\xf1\x36\xcd\x2c\x47\x91\x40\xd1\x1e\x3b\xcb\xde\x2f\xc5\x43\x33\x87\x60\x43\x5a\x1c\x49\xb0\x21\x6d\xc7\x16\x0b\x5f\x56\xa0\x30\x1d\x9c\x55\x6e\x22\x60\x15\xf8\xe5\x25\x3c\x7e\x9c\x5c\xb3\x3c\xf6\x63\xe6\x9d\x5e\x6b\xed\x60\x22\x5f\x2f\xfb\x5c\x38\xe2\xcd\x26\x6e\x43\x7f\x8e\x77\xde\x6d\xb9\x36\xea\x8e\x75\x9b\x2f\x8f\x62\x1d\xad\xe3\xf5\x48\x1c\x13\xfb\x7f\x15\x97\xc4\x9b\x13\x93\xbf\x3a\xa3\x41\xf0\xb1\x04\x1f\x4b\xf0\xb1\x04\x1f\x4b\xf0\xb1\xa0\x4d\x7d\x2c\xbb\x92\xb4\x8e\xda\x21\x71\x9c\xa2\xd2\x61\x3d\x12\x41\x5a\x3a\x76\x69\xa9\x2d\x4a\xe1\x71\xb9\x58\xb6\x2c\xab\xdc\x16\xbd\xf0\x2d\x19\x07\x8f\x4b\x47\x6c\x9d\x39\xf0\xab\x63\x7c\x9b\x99\xfe\x8e\x76\xba\x41\x2b\x0e\x5a\x71\xd0\x8a\x83\x56\x1c\xb4\x62\x14\xb4\xe2\xb5\xb5\xe2\xb7\x24\x28\x1e\x9d\x86\x1c\x64\xc5\xd7\x9e\xf0\x57\x26\x2b\xb6\xc5\x26\x50\x77\x72\x5b\x6a\x19\xf8\x3a\x03\x8a\x8e\xf8\x26\x08\x39\xaf\xc8\x5b\xba\x10\x70\xf3\xb5\xf0\xd1\x96\x07\xdc\xbc\x3d\xbb\xea\x11\xf3\xc8\x90\x0d\x1c\xc4\xca\x1d\x4d\x37\x98\x20\x83\x09\x32\x98\x20\x83\x09\x32\x98\x20\x51\xbb\x93\x9f\x57\x1a\x9c\x42\xfe\xf3\xbe\x0c\xab\x47\x2c\x29\x86\x5c\xe8\x20\x2c\xee\x6e\xba\x6d\xd5\x9d\xdb\x64\x83\x94\xeb\xd7\x8d\x58\x89\xc4\x6d\xa7\xfd\xdb\x12\x06\x76\x45\xa5\x53\x74\x8f\x89\x5f\xc9\x7d\xb3\xa4\x6d\xe0\x77\xdd\x8a\xbe\x59\xf4\xdd\x2d\xaa\xd1\x03\xef\x7a\xa3\xe5\xe8\x03\x38\xf0\x12\xe2\x04\x70\xe0\xb5\xb8\x49\x00\x07\x6e\x09\x38\xf0\xba\x2a\x98\x39\x95\xbe\x16\x06\x87\xdc\x49\xad\xce\x2c\x75\xa4\xca\xd8\x8c\xcb\x7a\xc9\xe4\x8e\x8c\xa9\x04\x96\xb4\xa4\xa6\x95\x93\x49\xa0\xb0\x02\x6c\xf5\x8f\xfa\x01\x14\x93\x59\xc2\xe7\x60\xff\x5a\x22\xae\xb8\x2e\x6e\x17\x34\x86\xb6\x4b\x2c\x6e\xe4\x87\xd2\xa9\xda\x22\x73\xe7\xf3\x6e\x85\x94\x9d\x87\xfc\xbf\xbe\xbc\x7d\x4c\x81\x57\x7b\x17\xb8\x0f\xcb\x67\x8f\xa9\x2e\x6e\x50\x27\x82\x3a\xd1\x64\xd7\x04\x75\x62\x15\x81\x82\x3a\x11\xd4\x89\x7d\xaa\x13\x07\x96\x60\x3e\xfc\xab\x54\x6e\x76\x59\x00\xe2\xa3\x8d\x3a\x04\xe7\x2c\x95\x70\xe4\x57\x0a\x32\x7d\x56\xfd\x83\x73\x52\x0e\x89\xe3\x31\xc3\x54\x79\x65\xd7\xa4\xbe\xb4\x66\x44\xa8\xb9\xf7\x24\x99\xce\xd4\xfc\xbf\xfa\x8c\xaa\x2c\xc4\x8b\x8e\x19\x17\x66\xc7\xe8\x97\x27\x98\xc5\x89\xbe\xd4\x65\xd6\x4e\x84\x19\xe3\x0a\x58\x39\x4c\x20\x46\xcf\x14\x1b\xc6\xdf\xb9\xed\x35\x0e\x74\x3c\x26\x51\xeb\xb0\x91\x8c\xfb\xaf\x9d\x76\xf8\xca\xa2\x2b\x26\xf4\x29\xe1\x43\x9c\x24\x73\x94\x16\x3d\x4a\xba\x81\x96\xcc\xa1\x2d\xda\x5b\x3b\xd4\x35\x07\x2b\x50\x56\xdb\x5a\x66\x8d\x38\x26\x26\x73\x68\x73\x84\xb7\x84\x6f\x8c\xdd\xb4\xe5\xa8\xb6\xcd\xd0\x12\x84\x93\xa6\xc2\xc9\x11\xb1\x8d\xc3\xca\x26\xe1\x26\x3f\xfe\x9b\x5c\x61\xf9\xe4\x57\x32\x87\x0b\xdd\x15\xa3\x2f\x54\xf1\x2d\x97\xf4\xfd\x77\x93\xe7\xf2\xf4\x82\xd5\xcf\x66\xd5\xd0\x57\x3f\x0a\x95\xd1\x6b\x1e\xb4\x65\xf4\xcd\xcf\x30\xbd\xf2\x38\xdc\x97\x7e\x87\xee\xbb\xbc\x65\xf7\xcd\x33\x11\x92\x72\xfb\x98\x20\x4a\xcc\x07\x58\x29\xcd\x90\x36\xb0\x51\xd7\x72\xcd\x07\x2c\x9f\x9a\x55\x65\xff\x44\x54\xe1\xe1\xb6\x8b\x35\x6e\xa2\x30\xcf\xc2\xc8\xf7\xcf\x9f\x1a\x6c\xe3\x37\x26\xee\x34\x3e\x92\x2b\xe6\x7d\x7c\x85\xe9\x9b\x32\x98\x35\x26\xfe\xb5\x14\xa9\x6f\xc6\x70\x57\xc5\x43\x1e\x63\xc1\xfa\x65\x37\x48\x6b\x46\x58\xba\xc4\xde\xe2\xc9\x2d\x5e\xc9\xe1\x88\x2e\xa3\x51\xd3\xb3\x78\x34\x27\xb0\x24\x69\xad\x98\xdb\xbd\x5b\x20\xfb\xb8\xdb\x09\xed\x9b\x57\x41\x58\xdc\xf5\xa8\xf6\xe3\x00\xf6\x56\x63\x9d\x14\xc2\x9e\x2b\xb6\x6e\xdc\x59\xd9\x19\x72\x49\x85\xd9\xd1\x54\x13\x28\x48\x45\xa5\x5f\x9f\x3d\xe2\xc2\x48\x9b\xb1\x3d\xb3\xc6\xa1\xd5\x79\xe8\xdc\x77\x1f\xce\x51\x07\xc5\x58\x61\x7d\x48\x05\x99\x09\x22\x09\x53\xc6\x14\xc1\x14\x55\x73\x34\xe5\x31\x49\x8c\x1d\xc0\x18\x07\x2f\xb1\xc2\x17\x58\xe1\x84\x8f\xcf\x50\x07\xfe\xd4\x2f\x53\x89\x70\x22\x39\xc2\x6e\xe3\x90\xd8\x35\x81\x59\xec\xd8\x03\x46\x11\x9f\xce\x68\x62\xf2\xda\x7c\xff\x36\x65\x31\x7d\xa6\x71\x8a\x13\xc4\x87\x60\x43\x39\xeb\xb3\xee\x33\x61\x2a\x05\x1d\x17\x27\x09\xb2\xdd\xba\x07\x3c\x03\x86\x1b\xa5\xa4\x53\x9a\x60\xa1\xa5\x47\x33\xda\x1b\xdb\x16\x7a\x98\x90\x6c\xac\x30\x2e\x4d\xcd\x29\x7e\x22\x12\x51\x85\x66\x5c\x4a\x3a\x4c\xf2\x63\xfc\xd8\x43\x30\xee\x8b\xab\x1e\x38\x0d\x23\x85\xb8\xe1\x83\xae\x73\xeb\x41\x77\x3d\x4e\x31\x63\x04\x3a\xe6\x6a\x42\x84\xed\xde\x3e\xfc\xda\xfe\xbf\xc7\x6b\x9b\x2e\xd6\xbd\x5c\x74\x00\x3e\x74\xee\x7f\x5c\xfc\xd6\xe5\x87\x2d\xfe\x72\xd5\x79\xbc\xbe\xf8\x61\x70\x7b\xd5\xa9\xc8\x3b\xb3\xdb\xaa\xb1\x2f\xd1\x1f\xd9\xe6\x87\x69\xff\x8a\x46\x4b\x43\x13\x9b\x1b\x1d\x1a\x59\x1c\x1a\x9b\x1b\x9a\xda\x1a\x9a\x19\x1a\xea\xad\x0c\x7b\x08\x53\x6b\x6e\x0a\xb8\xa2\xb2\x68\x0b\x38\x8e\x98\xb5\xc2\x90\xf5\x1c\xf6\x6d\x08\xf8\xea\xac\x00\x5f\xa9\x09\x20\xe8\xff\x7b\xa1\xdb\x5b\x55\xfe\x5b\xae\xf9\x6f\x13\x94\x9a\xe1\x5f\x84\xa8\xd4\xc5\xa8\x54\x12\x82\x52\x43\x50\x6a\x53\x02\x85\xa0\xd4\x10\x94\x7a\xb4\x41\xa9\x65\x45\x2b\x78\x6c\xdb\xe0\xb1\x6d\xb9\x8e\xd6\x66\x87\xed\x5b\xd5\x5c\x82\xf3\x32\x38\x2f\x83\xf3\xf2\x48\x4f\x6e\x70\x5e\x36\xa7\x51\x70\x5e\x06\xe7\x65\x70\x5e\x06\xe7\x65\x70\x5e\x06\xe7\xe5\x6b\x9a\x46\xda\x10\x1b\x7a\xcc\x2e\xdb\xe0\x89\x5d\xe1\x89\x6d\xb9\x92\xdf\x4a\x47\xec\x5b\xd5\x11\x82\x6a\x1f\xfc\x92\x5b\x4d\xbb\x55\x4a\xfd\x5b\xbb\x37\x83\x2b\xb6\x39\x21\x82\x2b\xb6\x31\xa9\x82\x2b\x76\x09\x71\x82\x2b\x36\xb8\x62\xbf\x42\x57\x2c\x8d\xb7\x2e\xb9\xd5\x44\x6f\xd1\xb2\x62\xdc\x05\xf3\x50\x66\xdc\x12\xbf\x81\xf4\x88\xe5\x53\x66\x01\x6a\xa0\xcf\xf4\xe2\xa3\x50\x64\x2a\x27\x7c\x08\x85\x66\x1b\x8d\x05\x2b\xcd\xc1\x15\x40\x15\xe8\x5f\x72\xa3\x62\x0b\x6b\x04\x6c\xa3\xa3\x78\x13\xf3\xd4\x14\xa7\x7d\x78\x44\x69\xdf\xb4\x83\xe0\x17\x04\xbf\x20\xdb\x34\x9c\x70\x90\x6d\xda\x2b\xdb\xbc\x96\xc2\xd2\xbe\xe3\x79\x74\xf6\x89\xbd\x8b\xa5\xb2\x31\x68\x9b\x29\x93\x0d\xae\xbb\x74\x96\x70\x1c\xaf\x0a\x90\xfb\x0d\xe5\xb2\xda\x12\x71\xd3\xb4\xab\x5f\x68\xb9\xb4\xb9\x10\x1b\x67\x46\xfe\x35\xa0\xc6\xd7\x4e\xfd\x55\xf1\xcc\x60\xff\x66\xa8\x45\x6b\x21\x10\xee\x7f\x33\xb7\x3d\x1b\xef\x95\x77\xf3\x9b\x4c\xbd\x0b\x47\x74\xf5\x11\x85\x0f\x85\x00\xef\x7d\x59\x42\xca\xc7\xb6\x91\xd1\x43\xfe\xad\xe5\xe7\x36\x5b\xdf\x43\x98\x38\xde\xe4\x29\x7d\xc3\xce\xe6\xe0\x50\x5e\x1e\xf5\xb3\xa3\x00\xd4\x3e\x7b\x98\x68\x3a\x4c\x87\x94\x65\xf1\x76\x6e\x87\xfc\xc9\x91\xeb\x4f\x80\x75\x69\xf1\x2f\x93\x79\x6e\x0a\x93\xe5\xd6\x32\x45\x09\x9d\x6a\x2d\x35\x22\x42\x01\xbd\x39\x53\xe4\x8b\x92\xe8\x14\x25\xf4\x89\xa0\xf7\xfa\xc8\xa3\xce\x6d\xef\xfd\x09\x7a\x7f\x85\x53\x16\x4d\xd0\x2c\xc1\x4c\xbe\x6f\x8d\x82\x15\x6c\x66\xa1\x9a\x4a\xf0\x96\xee\x92\x38\xc1\xa2\x18\x2c\x8a\xad\xb3\x28\xb6\x45\x67\x30\x49\xa5\x78\x4a\xda\xa2\x3d\xb4\x5d\xeb\x0f\xda\x43\xd0\x1e\x82\xf6\x10\xb4\x87\x82\xf6\xd0\x0e\x0a\x07\xd5\x21\xa8\x0e\x41\x75\x08\xaa\x43\x50\x1d\x76\x4e\xc6\xa0\x3a\x2c\x53\x1d\xe0\x93\xc3\x8d\x59\x57\x8f\x68\xac\x3f\x34\x00\x89\x39\x1a\xe5\x21\x28\x0e\x41\x71\x08\x8a\xc3\xc1\x15\x87\xd6\x4c\xe8\xed\xe1\x5d\x04\xc4\x88\x80\x18\x11\x10\x23\x6a\x10\x23\x0e\x25\xb2\x19\x79\xed\xc8\x52\x64\x8e\x42\x68\x7b\xb5\x1c\x99\xb7\x27\xc6\x85\xac\x9f\x90\xf5\x13\xcc\x90\x21\xeb\x27\x18\xda\x82\xa1\xad\xd5\x86\xb6\xd7\xb2\x9e\x1f\xf8\x78\x1e\x40\x38\x6d\x79\xc4\xf2\x5f\x8f\x41\x02\x3d\x60\xcc\x41\xb0\xb2\x05\x2b\x5b\x35\x65\x8e\xd3\x3d\xdf\x9a\x5b\x3f\x00\x3c\x05\x89\x3f\x04\x1e\x84\xc0\x83\x95\xc4\x09\xfa\x50\xd0\x87\x5a\xa7\x0f\xbd\xa2\xa2\xd0\xba\x30\xe5\xa0\x31\x04\x8d\x21\x68\x0c\x6f\x56\x63\x68\x0d\x85\x83\xba\x10\xd4\x85\xa0\x2e\x04\x75\x61\x39\x71\x82\xba\x10\xd4\x85\xa0\x2e\xb4\x3a\x34\xf9\x58\x14\x86\xa0\x2c\x04\x65\xa1\xdd\xca\x42\x6b\x26\x14\x82\x78\x43\x10\x6f\x08\xe2\xfd\x6a\x82\x78\xdf\xa8\xc2\xbe\x57\x31\xcd\xb1\xc8\x65\x82\xd7\xa2\xbc\xf4\xf3\x02\x63\x6d\xad\xc8\x94\x8f\x76\x53\xdc\xc7\x5d\x91\xfa\x85\x8b\xa7\x51\xc2\x5f\x06\x99\x56\x67\x83\xc2\xf3\xbf\x6d\x3e\x9f\xf7\x45\x2e\x3c\x7b\x5f\x66\x42\xb4\xf7\x9d\x6b\xbd\x08\x10\x9a\xae\xc2\x07\x95\x88\x0b\x94\xce\x62\xf8\x18\xa5\x52\xf1\x69\xbd\x54\xfd\x19\xab\x68\x82\x87\x09\xe9\x64\xfd\x5e\x70\x36\xa2\xe3\xd4\xec\x8f\xdf\x80\x15\x62\x27\xd9\x9c\x38\xc9\x48\x33\x45\x37\xbe\x65\x92\xf8\x23\x8c\xe3\x17\xfb\x64\xde\xc9\x51\x04\xa0\x2f\x0e\xdb\x4c\xe7\x50\x70\xa3\xc5\x5d\xb4\x2d\x8b\xf3\x5a\x6b\x87\xf8\xb3\x78\x26\x56\x89\xaa\x60\x85\xce\x34\x13\x1a\xc3\xe6\x7c\x99\x50\xb0\xac\x81\x25\x0e\xac\x4f\x79\xc3\xe8\x85\x26\x09\x48\x1c\x86\x16\xed\x9b\x79\x23\xed\xc5\x4e\xdc\x9e\xbd\x37\x31\x6f\xc7\x3c\x56\xcc\xdc\x1d\x41\xe3\x86\x38\xd2\x69\xbf\x26\xc2\xee\x0a\x46\xf6\xaa\x38\xbb\xb5\xd7\x67\x4d\x4e\xd5\x87\x7f\x55\x5e\x89\x4d\x6a\xa7\xbe\xf6\x3d\xf8\x89\xa8\x37\x73\x09\x7e\x22\xea\x50\x37\xe0\x5b\xbc\xf6\x36\xbd\xeb\x96\x32\x3e\x41\x46\x44\x10\x16\x91\x63\xcd\xc9\x5a\xb8\xe2\x8e\x76\xba\x1b\xdd\x6c\x47\x3b\xdb\x75\x0c\x58\xbf\x98\x49\x5a\x73\xd5\xd4\xb1\x5c\x7f\xaa\x8a\x5b\xf7\x72\xc1\x05\x66\x8d\x55\x0f\x9d\xfb\x1f\x07\x77\xdd\xfb\x9b\xc7\xbb\x8b\xee\x39\xea\xc0\x41\x87\x77\x0c\x7b\xa7\xff\x84\xe6\x20\x1f\x36\x33\x86\x09\x73\xc7\x49\x60\xd5\xe0\x06\xd7\x54\x44\xa7\xe8\xe2\xea\xf1\xfe\xa1\x7b\x57\xd3\xa0\x65\xfe\x94\x8d\x91\x22\xd3\x59\x82\x15\x89\xd1\x53\x3a\x24\x82\x11\x50\xac\x92\x54\x2a\x22\x72\xe7\xb8\x69\xb4\xfb\xdf\xdd\x8b\xc7\x87\xde\xcd\xf5\xe0\xa7\xc7\xee\x63\xf7\x1c\xb9\x5b\x44\x37\xab\xc7\xa5\x47\x11\xcf\x19\x9e\xd2\xc8\x7c\x91\x95\xa2\x45\xbf\xa7\x24\x25\x08\x4b\x49\xc7\x6c\x4a\x98\x2a\xb7\xe8\x06\x7c\xd5\xf9\xbe\x7b\x55\x6c\x79\x42\xd0\x8f\x7f\xcf\x07\x95\xe0\x21\x49\xac\xb7\x1e\x1c\xd0\xfa\xf2\xca\x3b\xb2\x6e\xfc\xd4\x50\xf5\xa7\xc7\xce\x55\xef\xe1\xd7\xc1\xcd\xc7\xc1\x7d\xf7\xee\xe7\xde\x45\x77\x60\x8d\x31\x17\x1d\xdd\x6f\xa1\x27\x6b\xb3\x41\xbf\xa7\x38\xa1\x6a\xae\xd7\x51\x9a\x4b\x1f\xbd\x4c\x08\x43\x29\x83\x0b\xc4\x58\x0a\x31\xf3\x3a\x95\x33\x12\x99\x19\xdd\x5e\x3d\x7e\xea\x5d\x0f\x6e\x7e\xee\xde\xdd\xf5\x2e\xbb\xe7\xe8\x9e\x24\x60\x4b\x73\x44\x87\x55\x9c\x25\xe9\x58\x73\x82\xe9\x2c\x21\x9a\x1a\xc6\x56\x38\x24\x13\xfc\x4c\xb9\xb0\xd7\xf1\x98\x3e\x13\x66\xe8\xa8\xb7\x95\x69\xdf\xd9\xac\x06\x1e\xe9\x6e\xae\x3f\xf6\x3e\x9d\xa3\x4e\x1c\x67\x73\x90\xd0\x46\x61\xe7\xb8\xa3\x7b\x5a\x1c\x36\x1d\xd1\x08\xba\x37\x9b\x88\x3f\x13\x21\x68\x4c\x4a\xfb\xa8\x73\x7f\xdf\xfb\x74\xfd\xb9\x7b\xfd\x00\x14\x53\x82\x27\x12\x4d\xf8\x0b\x38\x7a\x61\x86\xe0\xff\x7d\xc6\x34\x81\xce\xdc\x62\x71\xe6\x9f\x7e\xaf\x67\x63\xd6\x14\x29\x7b\x75\xdf\x65\xe1\xe0\x2d\x5a\xfb\xca\x27\x69\xf1\x89\xd2\xb1\x58\xf6\x40\x61\x97\x2f\x3e\xb8\x6a\xb7\x2e\xbe\x51\xda\x6e\xf5\x36\xce\x85\xfd\x52\x3f\xd3\x7c\xad\x1b\x9b\x38\x8b\x34\xdc\x87\x8c\xed\xde\x7e\x17\x93\x84\x28\x52\x2b\x13\x5f\xc2\xcf\xaf\x2f\x13\x9b\x71\xbc\x19\xb1\xd8\x4c\x27\x48\xc6\x41\x32\x6e\x3c\xe1\x20\x19\x57\x4d\xf8\x8d\x48\xc6\x2d\xb4\xfa\x38\x16\xd5\x3a\xab\x4f\xf0\x8f\x94\x56\xea\x38\xaf\xc0\x57\x73\x8f\x04\xff\xc1\x7a\x57\xc8\xf1\xcf\x3b\xf8\x0f\x82\xff\xa0\xf2\x26\x79\xf3\x5e\x83\xe3\xbc\x1a\x0e\xe8\x34\x08\x6a\xc4\x92\xf9\x06\x35\xe2\xc8\x66\x1b\x0c\xec\xc1\xc0\x1e\x0c\xec\xc1\xc0\x1e\x0c\xec\x68\x53\x03\x7b\x03\x2e\x7b\x08\x73\x6a\x4b\x83\x88\xdf\x8a\xdb\xe0\x38\xe5\xe2\xc3\x7a\x0d\x82\x68\xbc\x64\xbe\x41\x34\x3e\xb2\xd9\xb6\xd0\x2e\xd2\x2e\x0b\x3b\x8d\xab\x0c\x22\x07\x84\xa6\x77\x23\x69\x0a\x4f\xef\x08\xda\x8b\x8f\x82\x9d\xbf\x1a\x42\x7d\xc0\x73\x0f\x78\xee\x01\xae\x25\xe0\xb9\xa3\x00\x48\x12\x00\x49\xda\x0c\x48\xd2\x60\x19\xdf\x02\x9e\xfb\x61\x2c\x0c\x6f\x28\x49\xd9\x09\x86\xb2\x10\xbb\xc1\xe5\xaa\xe0\x0d\xb0\x12\xa4\xb3\x84\xe3\x78\x19\x58\x8c\x93\x23\x7d\xc0\x98\x25\xa2\xa7\x69\xfb\x97\x45\xe5\xa9\xb5\x92\xa7\x1b\xab\x19\xf9\xa1\xcc\x07\xad\x51\xb8\xdc\xb4\x5b\xa1\x66\x15\x6b\xb7\xb6\x70\x43\x1f\x55\x40\xed\x61\x77\xf4\x9b\x2c\xda\x1a\x8e\xe9\xea\x63\x7a\xb8\xfa\x28\x55\x47\xb7\xb1\x21\x44\xfe\xed\x98\xce\xee\x81\x90\x8f\xdf\xde\x89\x0d\x08\x6d\x01\xa1\xad\x96\x32\xc7\x09\xe7\xdc\x1a\xc5\x2b\xd8\xd2\x02\xf4\x71\x80\x3e\xde\x25\x71\x82\xa5\x31\x58\x1a\x5b\x67\x69\x6c\x93\x0e\xb1\xc7\xd2\x29\xdb\x69\x13\x47\x65\x09\x08\xda\x44\xd0\x26\x2a\xa6\x16\xb4\x89\xaf\x50\x9b\x68\x07\x85\x83\x2a\x11\x54\x89\xa0\x4a\x04\x55\x22\xa8\x12\x3b\x27\x63\x50\x25\x5e\xa7\xac\x4a\x95\x3e\xd1\x30\x25\xf5\xa8\x94\x89\xa0\x48\x04\x45\x22\x28\x12\xa1\x70\xcc\xf2\x39\x85\xc2\x31\xa1\x70\x4c\x28\x1c\xf3\x06\x0a\xc7\x1c\x52\x84\xab\x41\x2b\x3f\x8e\x34\x9b\xa3\x10\xe2\x5e\x2d\xcf\xe6\xed\x89\x74\x21\x73\x28\x64\x0e\x05\x13\x65\xc8\x1c\x0a\x46\xb8\x60\x84\x6b\xb5\x11\xee\xb5\x2c\xeb\x07\x3e\x9e\x07\x12\x54\x8f\x24\xda\xf9\xaf\xc7\x20\x8d\x1e\x38\x3e\x21\x58\xe0\x82\x05\xae\x9a\x32\xc7\xe9\xca\x6f\x8d\x14\x70\x8c\x95\x63\x83\x06\xd0\x9c\x10\x21\x48\xa1\x39\xad\x42\x90\xc2\x12\xe2\x04\xfd\x28\xe8\x47\xad\xd3\x8f\x5e\x59\x71\x68\x6d\x88\x73\xd0\x20\xcc\x73\x41\x83\x08\x1a\xc4\x1b\xd5\x20\x5a\x43\xe1\xa0\x3e\x04\xf5\x21\xa8\x0f\x41\x7d\x58\x4e\x9c\xa0\x3e\x04\xf5\x21\xa8\x0f\x47\x13\xd6\x7c\x4c\x0a\x44\x50\x1e\x82\xf2\xd0\x6e\xe5\xa1\x35\x13\x0a\x01\xc0\x21\x00\x38\x04\x00\x7f\x35\x01\xc0\x6f\x54\x81\xdf\xad\xd8\xf6\x07\x4b\xa8\x77\x9e\x80\x91\x49\x22\xef\xbe\x4f\xf8\xf0\x61\x3e\x23\xfa\xbf\x97\x74\x4a\x98\x04\x4a\x50\x35\xf7\xc5\xb4\x9a\x0d\xb5\xb8\x95\xde\xdd\xf7\xae\x3f\x5d\xf9\xe5\x81\xde\x7d\x7e\xbc\x7a\xe8\xdd\x76\xee\xb2\xe5\xce\x66\xe5\x2f\xb1\x7d\xaf\x20\x69\xda\x93\x7c\x47\xb4\x4a\x0d\xcc\xe0\x5e\x61\x95\xca\xcd\x46\x76\xd7\xbd\xef\xde\xfd\x0c\xe5\x8d\x06\x97\xbd\xfb\xce\xf7\x57\x85\x7d\x5e\xf8\xbd\x73\xf1\xd3\x63\xef\xae\xfe\xf7\xee\x7f\xf7\xee\x1f\xee\xeb\x7e\xbd\xeb\x5e\x75\x3b\xf7\xf5\x6f\x7f\xec\xf4\xae\x1e\xef\xba\x4b\xe9\xb1\x74\xb4\xcb\x75\x2b\x09\x44\x82\x12\x1f\x28\xb2\xcc\x50\xe4\x34\x44\x99\x54\xec\xb8\x7c\x55\x5f\xe7\xe8\xd1\x9a\x2a\xa8\x6d\xdc\xdc\x1b\x5e\x43\x46\xc7\x8a\xa9\xc4\xc3\x84\xc4\x0b\x2d\x39\x1a\xd6\xb5\x84\x0b\x83\x7a\xc1\xd2\x93\xa4\x35\x2b\x8f\xcc\xf1\x41\x50\x74\x4d\x11\x16\x57\xf4\x61\xd6\xa1\xb6\x07\xa6\x59\x32\x7d\x26\x85\x9e\xa2\x54\x08\xc2\x54\x32\x47\xe4\x0b\x95\x4a\x2e\x34\xea\x96\xaf\xae\x59\xcb\x10\xb2\x06\x27\x58\xa2\x21\x21\xac\x38\x7e\x41\x12\x82\x65\xc5\x98\xed\xea\x37\x23\x4b\xb6\x56\xd6\xc8\x64\xee\xd8\x11\xa6\x49\x2a\x48\xe9\xb4\xf0\xe9\x0c\x0b\x2a\x39\xeb\x7e\xd1\x57\xb4\x3e\xc8\x37\xf0\x3a\x17\x9b\x9d\x98\xee\x4f\xfe\x0e\xbe\x2e\xfe\xf9\xe9\xa1\xf8\x57\xe1\xcc\x5f\x3d\x14\xff\x5a\xbe\xd7\xbd\x86\xcb\x3b\xfb\x14\x7d\x7a\x38\x47\x9f\x00\x62\x54\xa0\x87\x09\x36\x3b\xf6\xea\xe1\x1c\x5d\x11\x29\xe1\x9b\xfc\x65\x45\x55\x02\x73\xfb\x9e\x32\x2c\xe6\xc8\x4d\xdf\x54\xee\xc3\xd1\x04\x91\x8c\x34\x65\xe2\xb1\x7f\xa4\x0c\x2c\x12\x39\xf5\xae\xf8\x98\x46\x38\xd9\x8e\x88\x9d\xeb\x02\x1f\xb8\xb9\x5b\x4a\x0a\xff\xe9\x45\x5a\x74\xae\x2f\xa1\x2a\x9e\x1b\x6a\xc5\xcc\xaf\x89\xd4\x9b\x24\xe2\x2c\xb6\x3e\x35\x2d\xd4\xcc\x3d\x5d\xe5\x1f\x1c\x2a\x0b\xa6\x92\xb2\xb1\x6e\x11\x7d\x40\x37\x77\x7d\x76\x23\x62\x63\xdf\x25\x5a\xc8\x37\x7b\x8e\x4a\xc4\xb8\x42\x74\x3a\xe3\x42\x61\xa6\xb4\x7e\x03\xd2\x8d\xa5\x88\xe1\x00\x17\x7c\x3a\x4d\x15\xd6\x07\x6d\x81\xa8\xcc\x58\x79\xee\x89\xea\xc5\xe0\x08\xab\xa0\xa1\x11\x7f\xf2\xb9\xcc\x84\x6e\x5f\x8b\x5e\x45\xd3\x00\x8d\x17\x34\x74\xd7\x04\x16\x02\x17\x2f\xe0\x77\x54\x91\x69\xf9\xf9\x86\xd7\xee\xbf\x2b\xed\x1e\x17\x26\x2b\x82\x88\x8e\x88\x26\x54\x91\x48\xe9\x23\xb8\xd1\x9e\x78\xbc\xfe\xf1\xfa\xe6\x17\x5f\x30\x7a\xd7\xf9\x7c\xf9\x9f\x05\x18\xd8\xce\xdd\xe7\x85\x2f\x06\x3f\xff\xe7\xc2\x37\xff\xff\xa5\xfb\xa9\xdc\xd3\x82\xf9\xc2\x9b\xcb\x29\x68\x0a\x60\xea\x76\x53\x45\x74\x8a\xc7\x04\xc9\x74\xa6\x77\x80\x3c\x2b\xae\xaf\x96\x94\xaf\x38\x8e\x29\x1b\x9b\xe2\x6f\x57\x54\x11\x81\x93\xcf\x78\xf6\xd1\x99\xe5\x37\xa0\xce\xff\xb9\x2f\x14\x20\x7c\xf7\x6b\xe7\xb3\x5f\xc2\xf0\xdd\xed\xdd\xcd\xc3\xcd\xd2\x59\x17\x5a\x58\x3c\x46\xfa\xe7\x73\xf8\x7f\xf4\x01\xe9\xd6\x33\x81\x7e\x4a\x14\xd6\x8a\x0e\xfa\xc6\xd4\xcb\xca\x32\x61\x28\x4b\xe0\xd4\xcc\x04\x9d\x52\xb8\x52\x8c\x61\xf2\x5b\xa3\x33\x64\x4a\x51\x76\x6e\xcc\x0b\x60\x04\x70\x97\x32\x8b\xb1\x88\xd1\x3f\x64\xb9\x1e\x26\xd8\xc3\xcd\x17\x24\x46\xa7\x68\xa2\xd4\x4c\x9e\x7f\xf8\xf0\xf2\xf2\x72\xa6\x9f\xd6\x02\xec\x07\xfd\xe1\x94\xb0\xb3\x89\x9a\x26\xa6\xfe\xa7\xa6\xc2\x39\xba\x15\x5c\x5f\x21\x60\x77\x20\x82\xe2\x84\xfe\x93\xc4\x68\x68\xf8\x1f\x1f\xa1\xdf\x22\x2e\xc8\x59\xbe\x30\xd6\x56\x66\xef\x11\x6b\x4f\xfb\xa0\x1f\xaa\x60\x26\xe5\xf5\x44\x31\x89\x68\x6c\xc5\x0c\xc2\x22\x0e\x06\x55\xe3\x82\xd1\xed\xb9\x22\x63\x5a\x51\x9b\xa5\x2a\x27\xa7\xa7\x83\xe1\x98\x78\xe5\x3b\xad\x7c\x9d\x6d\x38\xad\xcf\xf5\x8c\x36\x9e\x4a\x22\xe0\x6e\xc5\x70\xab\xba\x47\x67\x7a\xc2\x11\x4f\xd0\x30\x1d\x8d\x88\xf0\xc3\x07\x4e\xb4\x92\x46\x25\x12\x24\xe2\xd3\x29\x48\x0c\xfa\xad\x54\x9a\x5d\x0d\x14\xb3\xa3\x3d\xeb\x33\x58\x7f\xad\xbd\xc1\x0e\x88\x39\xb0\x3a\x46\x48\x8c\x30\x9b\x9b\x6e\x86\xe9\xc8\x6f\xdf\xd4\xd5\xc5\x31\xa2\xaa\xcf\x3a\x49\x82\x04\x99\x72\x45\xbc\xf2\x69\xe0\xea\x2c\x12\x1c\x58\xa4\x20\xb3\x04\x47\x24\x36\xfb\x21\xe1\x11\x4e\xd0\x88\x26\x44\xce\xa5\x22\x53\xbf\x81\x6f\xc0\x04\xa5\x69\x46\x25\x8a\xf9\x0b\x4b\x38\xb6\xf3\x28\xbf\xf6\x6d\xf1\x34\x76\x5d\xcd\xd3\xae\x10\x5c\xc0\xff\xfd\x48\x59\xbc\x33\x0e\xf5\x78\xdf\xbd\xf3\xff\xbe\xff\xf5\xfe\xa1\xfb\x79\x3d\xee\x93\xed\x2c\x18\x1e\x98\x26\xce\xd1\xbd\x21\x02\x17\x5a\x22\x12\x35\x93\xfa\x6c\xb7\x52\xfe\x05\x8f\x37\xe4\xbe\x9f\x3b\xd7\x8f\x9d\x02\x47\xb9\xbf\xf8\xa1\x7b\xf9\x58\xd2\x07\xec\xfc\x0a\x32\xbc\xd1\x6a\xfd\xef\x2e\x7e\xe8\x5d\x5d\x0e\x2a\xf4\xe0\x77\x77\xdd\x8b\x9b\x9f\xbb\x77\xb9\xca\x5a\x49\xa2\xd2\x60\xca\xcc\xea\xc1\x30\xa5\x09\x8f\xd1\x70\x5e\x5d\xe1\x56\x4b\xce\x09\x78\xce\xf3\x1a\xcf\xa6\xd5\x73\xe0\x4d\xae\xd8\x70\xfe\xc6\x94\xc7\xe4\xc4\x3e\x03\xa5\x81\x8d\xcd\xc8\x48\xcc\xd5\x0d\xeb\xde\x31\xf3\xec\x2f\xa6\x6a\x6f\x46\xb8\x73\xd4\x41\x52\x3f\x98\xea\x43\x2d\xe8\x78\x0c\xf6\xd0\xd2\x50\x4d\x6b\xf6\x55\x20\x2f\xbc\x67\xd6\x7f\x26\x38\x9c\x73\xdd\xad\x35\xa4\x67\xc6\x16\xf3\x22\x94\x91\x2e\xb6\x28\x30\xd8\x51\x2a\x86\xe6\x16\x4b\x13\xa1\x96\x5e\xe6\x3c\x1a\x33\x98\x3e\x5c\xc0\xb6\xa4\x31\xe3\xce\x04\x79\xa6\x3c\xf5\x5e\xb5\x95\x8a\x0b\x2b\x5e\xd9\x7c\x4e\x00\x20\x9b\xb1\xf5\x94\x9a\xc9\xb6\x47\x65\x0b\x9a\x85\x3d\x43\x0b\x23\xc1\xa7\x15\x6d\x14\x8f\x49\xef\xe6\x5e\x09\xac\xc8\x78\x7e\x69\x59\xc6\xe6\xc7\xe3\xf2\xe6\x97\xeb\xab\x9b\xce\xe5\xa0\xdb\xf9\x54\x3c\xf1\xd9\x2f\xf7\x0f\x77\xdd\xce\xe7\xe2\x4f\x83\xeb\x9b\x87\x81\x7b\x62\xe9\x96\xaf\xe9\x60\xf1\x9e\x2e\x3e\x78\x8e\x34\xcb\x05\xd6\xf8\x42\x93\x44\x5f\x26\x1e\x7f\x1c\x92\x11\x17\x86\xcf\x4f\x5d\xa0\x89\x15\x61\x1c\x6d\xad\x2e\x56\x9a\xc5\x39\x18\xfc\xaa\x9a\x34\xc6\x7c\x25\x08\x9e\xc2\x3d\x81\x19\xea\xb2\xf8\xf4\x66\x74\x7a\x6f\xbe\x9c\x62\xf1\x44\x44\xf6\xea\x8b\xa0\x4a\x11\x56\x50\xe9\xb0\x1b\x72\xa6\x24\xe6\x1d\x9c\xa1\x3b\xcd\xf7\xf5\xf3\xd9\xa5\xa6\x37\x7b\x4c\x14\xa6\x89\xb4\x83\x2d\xd0\xf5\x1c\x5d\x61\x31\xce\xcd\x8b\xdf\xf0\xd1\xc8\x34\xf6\xad\x19\x86\xbe\xc3\x0a\xb3\xa8\xe0\xbd\x7a\x6b\xb8\x7b\x11\xfa\xb3\x0f\x67\xf2\xf0\xe2\xae\x7a\x9c\x6d\xb7\xa7\x1e\x6f\x81\xe2\x46\x63\x2f\xe8\x86\xf6\x97\x8a\xbd\x06\x13\x37\x3f\x2f\xbf\x64\xaa\xdb\x5e\xdc\x4e\xc5\x07\x2b\xb6\x93\xa9\xd0\xa2\x57\x7e\xa4\xb5\xcd\x8a\xbd\x44\xbe\x50\x6b\x30\xf0\xc7\x5d\xda\x42\x79\x33\x60\x35\xc6\xb3\x19\xc1\x42\x56\xad\x76\x51\x0c\xac\x59\x7b\xd3\x93\xdf\x87\x5d\x64\xd7\xcf\x09\xe2\x0c\x0c\x0e\x99\x10\x51\xda\x91\x0d\xf6\x80\x69\x6b\x61\x07\xdc\x42\xf9\xf8\x1b\x5b\xaa\xfd\x33\x95\x5a\x69\x34\x5f\x7e\x6f\x6b\xc8\x6f\xb6\x21\x3e\x76\x7a\x57\x25\xe1\x62\x70\xd9\xfd\xd8\x79\xbc\x5a\x6e\x26\x2c\xbc\x57\x5e\x62\x74\x8a\xf4\xef\xc5\x70\x00\x3a\x32\x77\x86\xab\x84\x6f\x54\x5a\xc2\xc0\x68\x65\xab\x54\x1b\x33\x7c\x4c\x66\x09\x9f\x4f\x09\x03\x13\x4f\xe1\x26\xd4\xf4\x1c\x61\x6a\xaf\x16\x6f\xb0\x60\xc5\xb1\x66\x37\xb8\xc6\x4e\x5d\xf9\x7d\x12\x67\x37\x6f\xb1\xfa\x7e\x89\x75\xdf\x1a\xa7\xa0\xfd\xcf\xbd\xc2\x6a\xc3\x33\xd6\xb9\x78\xe8\xfd\xdc\x2d\xea\x87\x17\x3f\xf4\x7e\xae\x92\x6a\x06\x9f\xba\xd7\xdd\xbb\xce\xc3\x0a\xe1\xa4\xd4\x64\x95\x70\x22\xf5\x80\xcb\x4e\x61\x2a\xb3\x40\xa7\xc8\xd4\xf0\x47\x54\x49\xf4\x4c\x25\x1d\xd2\x84\xaa\x39\xb2\x0e\xd6\xc7\x1e\x70\xd6\x67\x9c\xd0\x98\xaa\xb9\x13\x5f\x4c\xbf\xc5\x75\xd4\x9c\xd4\xb6\x6f\xcc\x0e\xbe\xdb\x15\xac\x7c\x66\x71\xdc\xa4\xcf\x11\xe8\xb6\xcf\xa0\xb4\x79\xaf\x31\x2d\x48\xb3\x31\x11\x66\x38\xe0\x54\xf2\xc7\xe2\xfd\xae\x47\xe5\x0b\x2b\x39\xd5\x32\xa1\x75\x4c\x18\xd1\x2c\xd2\xeb\xc4\x08\x52\x82\xb0\xf7\x5a\xe6\x9a\x25\x34\xa2\x2a\x99\xa3\x08\x6c\x58\x60\xce\x9c\x62\x86\xc7\x56\x38\x00\x35\xa7\xb4\x25\x7e\x4a\xc1\x00\x7f\x33\xb2\xa6\xfd\x07\x4a\x36\x3c\x66\x8f\xd7\x97\xdd\x8f\xbd\xeb\xe2\x16\xf8\xa1\xf7\xa9\x20\xc2\x7e\xee\x5e\xf6\x1e\x0b\xb7\xb9\x96\x64\x97\xcb\xf5\xe5\x66\x2b\x8e\x62\xf6\xd0\x39\xba\x34\xaf\x9e\x6b\xe2\xfe\x6e\x26\xa7\xb7\x8c\x34\xd3\xcb\x95\xdf\x12\x1d\xee\x5c\xa4\xa1\xfb\xd0\x65\x4a\x54\xfa\x25\x9a\x9a\x90\xac\x57\xa8\x60\x43\xaa\x8e\xc0\x58\xe8\xfb\xba\xec\x2b\x2f\x4f\xd9\x3d\x08\x21\xb2\x67\xb9\x65\xc9\x0f\xcd\x00\xa3\x41\x9d\x11\xab\xc2\x5b\x97\x33\xec\x9f\xc1\xf3\x3e\x4d\xa5\x32\x1e\x52\xd8\x9c\xe8\xe9\xef\x52\x13\x14\x3c\xa8\x67\xe8\x9e\x90\x3e\x73\xd6\x83\x31\x55\x93\x74\x78\x16\xf1\xe9\x87\xa7\x74\x48\x04\x23\x8a\xc8\x0f\x78\x46\xa7\x58\x4b\xd2\x44\xcc\x3f\x0c\x13\x3e\xfc\x30\xc5\x52\x11\xf1\x61\xf6\x34\x86\xc0\x1e\xe7\xe9\xfa\x90\x35\x3b\xe6\xff\x71\xf5\xd7\xef\x4e\xaf\xfe\xfe\xdd\xbb\x45\x0b\x59\xdd\xfa\x77\x59\x84\x67\x32\x4d\x6c\x20\xa0\xf0\x69\xe3\x8e\x7c\x4a\x56\xad\xf7\x75\x71\xb9\xb6\xd3\x5f\x2f\x6e\x1f\x0b\x16\xeb\xe2\x9f\x9f\xbb\x9f\x6f\xee\x7e\x2d\x70\xca\x87\x9b\xbb\xce\xa7\x02\x43\xed\xde\xfe\xd0\xfd\xdc\xbd\xeb\x5c\x0d\xdc\x8f\xdb\xd8\xde\x7e\x64\xfc\x85\x15\x49\x23\x1d\x07\x5c\xe8\xe9\x1c\x7d\xe4\x02\xfd\x98\xad\xe4\xe9\x10\x4b\xb8\x62\xdc\x9d\x25\x4f\xd0\x8c\xc7\xc0\x78\x11\x99\x4d\xc8\x94\x08\x9c\x58\x9b\x81\x54\x5c\xe0\xb1\xb9\xe9\x65\x24\xb0\x8a\x26\x48\xce\x70\x44\x4e\x50\x04\xbb\x61\x7c\x02\x8b\x02\xaa\x16\x1f\x97\xed\x7c\x77\x29\x53\x74\x4a\x9c\x0a\x6e\xff\x7c\x30\x8b\xb1\xc1\xe2\xdc\x3c\xfc\x50\x14\xf6\x3e\x5e\xfd\xfa\xd0\x1d\xdc\x5f\xfe\xb8\x94\x9e\xe6\xb5\xc2\xc8\xee\x21\xae\xea\x82\x27\xe9\x94\xf9\x9f\x37\x1f\x5b\xef\xfa\xa1\xfb\xa9\x3c\xba\x9b\xce\x43\x71\x67\xdc\x15\xe3\xf6\xde\x7d\x7f\x73\x73\xd5\x2d\x78\xba\xdf\x5d\x76\x1e\xba\x0f\xbd\xcf\x85\xfd\x73\xf9\x78\x07\x3e\xa0\xa5\xd3\x74\x23\xa8\x98\xa8\x9e\x96\x3f\xcd\x5d\xb3\xc2\x46\x9c\xa8\x63\xc3\xff\xcd\x59\x3e\xf5\xf0\x72\x4c\x94\x1b\x58\x75\x4e\x33\x93\x6a\x64\x46\x5a\xc9\x0e\x55\x71\x99\x50\x3d\x3b\x5e\xba\xd0\xcb\xb8\xf2\x43\x36\x04\x18\xd7\x99\x51\xb6\x71\x92\xf0\x17\x13\xa1\x3c\xa5\xfa\x56\x96\x04\x02\x95\xf5\x23\x32\xf7\x10\x9e\x55\x70\xbc\xe2\xb2\x90\x48\x10\xf5\x99\xa7\x4c\x6d\xbe\xe5\x3a\xd7\x05\xbe\xd3\xbd\xfe\x79\xf0\x73\xa7\xb8\x03\x7b\x57\xcb\x59\x8d\xdf\x44\xc5\x55\xdc\xb9\xfe\x35\xbb\x84\x21\x8e\xfd\x24\xd3\x50\x8d\xec\x1a\x25\x54\x8b\xbd\x11\xd6\xda\x6b\x02\x12\x0d\x22\x14\x4c\x0e\x53\x3d\x39\x88\x9b\x9d\x19\x7f\x92\xe1\x4f\x66\x90\xe7\xee\x43\xa9\x3d\x09\x74\x01\x6b\xaa\x4b\x13\x80\x76\xac\x56\xcd\x10\x61\xcf\x54\x70\x06\xc2\xf6\x33\x16\x54\x4b\xe3\xa6\x65\x3d\xd7\x73\xf8\xff\xf5\xda\x04\xc3\x68\x89\x71\xdd\x73\xa1\x2e\xb3\xf8\xe4\xcd\xac\x21\x55\x71\xba\x8b\x11\xba\xd5\x86\x8e\xc5\x77\x2b\x16\x67\xcb\x38\xe6\xe2\x84\x7f\x4f\x2e\x29\x4e\x34\x03\xd8\x9d\xbc\xd8\xb9\xbe\xef\x15\xe5\xc7\xa2\x9a\xe1\xf1\xe5\x8d\xe5\x45\x30\x54\x9a\x91\x3b\x65\xe2\xfe\xa7\x2b\xa3\x5d\xe8\x4d\x62\xcf\xad\xa7\x58\x80\x00\xe4\x6a\xab\xce\xb0\x90\xa5\x37\x24\x02\x24\xb3\x3c\x8e\x4c\xdf\x59\x10\xa5\xf5\xcc\x69\xdc\x67\xe4\xcb\x8c\x30\x09\xc1\x01\xe6\x3e\xcb\x7d\xed\xf2\x0c\xf5\x46\xc0\x12\xf4\xe3\x0c\xa5\xcc\x3a\xc0\xf4\x85\x6b\x06\x79\xa2\x45\x59\x3b\x84\x4c\x43\x04\xc3\x0b\x23\x2e\x06\x2c\x1f\x7c\x9f\xfd\x92\x39\xd1\xe0\xa7\x11\xd7\x0c\x48\xaf\xa2\x6d\xef\x1c\x61\x26\xe9\x09\xd2\x0a\x4b\x79\x4d\x21\x23\x42\x2b\x94\x36\x32\x4d\x73\x1a\xfb\xf1\xf0\xd7\xc0\x42\xf8\xb3\x7f\x19\x54\xdf\x05\xa5\xab\xa0\x46\x34\x4e\x8c\xc7\x64\xd0\xfc\x4e\x88\xb8\x20\xd6\xcf\xb2\xf6\x35\xb0\x8a\xb1\x3f\x60\xf9\xb4\xe0\x7b\xe8\x31\xa9\x30\x8b\xc8\x45\x82\xe5\x86\x41\x48\xce\xc6\x71\x52\x94\x38\xee\xee\x1e\x6f\x1f\x7a\xdf\xaf\xe0\xf2\xe5\x97\x17\xc3\x80\xa2\x24\x75\xee\xb9\xa1\xe0\x38\x46\x9a\x7d\x8e\xb9\x71\x05\x5a\xc1\xdf\x9c\x20\xb3\x26\x54\x7a\x71\xa2\x58\x3e\x15\x8c\xd4\x36\xcb\xc2\xda\x39\x7c\x57\x02\xb5\x84\x40\x91\xa6\x04\xf2\x4c\x1e\x6e\xa9\xc1\xb3\x68\xa2\xe8\xac\x75\x6b\x96\x60\x35\xe2\x62\x6a\xb8\x7c\x61\xd2\xa6\xf1\xe5\x8d\x52\xa6\x88\x10\xe9\x4c\x81\xca\xae\xc7\x5a\x96\x52\xf5\x92\x5d\xf1\xf1\x67\x22\x25\x1e\x93\x6d\x1c\xd0\x55\xca\xc3\xfd\xcf\xfe\x9f\xe0\x60\x6e\x22\xfb\x17\x46\xe8\x02\xfa\xdd\x7e\xba\x61\x1f\x4d\x20\xcf\x2d\x4f\x68\xb4\x61\xc0\xdd\xc7\x4e\xef\x6a\xd0\xfb\xac\x95\xf8\xce\x43\xf7\xaa\x20\x4a\xc0\x6f\x9d\x8f\x0f\xdd\xbb\x41\xf7\xbf\xbb\x17\x8f\x0f\x9d\xef\xaf\xba\x83\xeb\x9b\xcb\xee\xfd\xe0\xe2\xe6\xf3\xed\x55\x77\x45\x64\x4e\x6d\xe3\x8b\xd6\xd5\xf2\xa3\xe7\x0b\xdf\xc0\x0a\x6b\x5e\xe6\xdb\xcb\x20\x19\x0e\xd3\x04\x9c\xe0\xdc\x38\xc3\x31\x62\x3c\x26\xf0\xb5\x74\xd6\x19\x97\x6d\x72\x86\x7a\xea\x7d\x92\x20\x9c\x2a\x3e\xc5\xe0\xb5\x49\xe6\x7d\x86\x87\x9a\xb5\xe2\x24\xf1\xc2\xbb\x44\xca\x98\x66\xb1\xba\x31\x69\xe2\x8b\x13\xa2\xd9\xf9\xcc\xcb\x61\xb4\x7e\x83\x11\x65\x10\x40\x3c\xc5\xe2\xc9\xb8\x99\xf2\x2e\xf3\x43\x21\x11\x96\x7d\xa6\xc7\x45\xac\x61\xa8\x09\x85\xcf\x1b\x3d\x55\x4b\x9d\x29\x7e\x22\x9a\x2a\xd3\x34\x9a\xa0\x99\xe0\x63\x41\xa4\xb4\xb6\xe5\x08\x33\x13\x80\x60\x1f\xd7\xd7\x50\x9f\x31\xae\x49\xe1\x4c\xd8\x31\x99\x11\x16\x13\x16\x51\x93\xad\x08\xbe\xfb\xcc\xb4\x39\x16\x78\x36\x41\x92\x83\xd3\x1b\xc8\x0e\xf6\x2b\xf3\x92\xbb\xc9\xcc\x8c\xcd\xcf\xbe\x05\x5a\xa4\x9a\x4f\xdc\x80\x9c\x68\xa8\x0c\x2f\xbb\xcb\xd0\xb9\x5d\x8c\x1d\x70\x3a\x4b\x08\x74\x69\x49\x0e\x8b\xa1\x69\x5d\x58\x0f\xbd\x4c\x55\x8b\xa0\x2f\x6c\x37\x66\x2c\xed\x88\xce\x2a\x2c\xdb\xf6\x48\xa1\x1f\x30\x8b\x13\xdd\x8a\xf3\x61\x14\xcf\x22\x64\xd8\x74\xf4\xae\x71\xa7\x71\x9b\x5b\x34\xc2\xa9\xdc\xe6\x1a\x2d\xa5\x98\x1a\xab\xe0\x69\x1e\x14\x02\xdb\xdb\xe6\x97\x02\x75\x67\x9a\x45\xe2\x84\x5b\x2a\x99\xc7\x53\x1b\xb4\x0c\xa3\xa9\xb9\x66\x67\x82\xb2\x88\xce\x70\xb2\x91\xee\x57\xca\x31\xb0\xa1\xfb\xdf\xd0\x91\xde\x3e\xdf\x2e\xb8\x6d\x15\x11\x53\x48\x27\xb7\xc3\xcc\x96\x70\x0d\x4b\x92\x4d\xd6\x20\x32\x8f\x26\xc1\x82\xa7\xc6\x1f\x07\x74\x21\x71\xc5\x51\x3d\xab\x5a\x6e\x7d\x32\x70\x31\x00\x7a\x83\xc5\x36\x91\x3f\x75\xf4\x2b\xb5\x62\x7b\x37\xc1\x78\x38\xb9\xad\x6e\xb3\x6a\x05\xbc\x1f\xff\xbd\x6c\xef\x7c\xc6\x33\xbd\x67\xa2\x54\x2a\xf0\x14\x67\x73\xb4\x4a\x52\x29\x94\xdd\xf3\x9d\x67\x41\xed\xcd\x57\x23\x27\xa1\x0d\x80\x5a\xec\xa4\x10\x43\xe0\x21\x02\xd8\x3d\x3e\x4a\xb5\x2c\x8b\x30\x44\x21\xa0\x6f\xc8\xd9\xf8\x0c\xdd\xfc\xdc\xbd\xbb\xeb\x5d\x76\x4f\x50\xe7\xf6\xb6\x7b\x7d\x79\x82\x88\x8a\xbe\x75\x31\x8b\x36\x60\xa9\xcf\x14\xb7\xd2\xca\x1c\x4d\xf8\x0b\xf0\x46\x22\xc6\xa4\x30\x67\x17\xdd\x04\xa1\xca\x63\x2a\x95\x0d\x9f\xd5\x7c\x25\x1f\x96\x96\xf7\x2b\x77\x48\xaa\x26\xdb\x6c\x0d\x2c\x65\x3a\xd5\xba\xec\x80\xe2\xe9\x40\xf0\x64\x1b\xa6\x70\x09\x53\x01\x75\x39\x03\x53\xa0\x78\x8a\x74\xb3\x36\x14\x24\x73\x39\x66\x22\x9d\x16\x8c\x34\x5f\xd6\xf7\xa6\x77\x6f\x39\xef\x83\x8d\x47\xa3\x2e\x04\x02\xc0\x16\x6a\x58\x45\x6e\x36\x1e\x58\x4b\xfd\x00\x47\x91\x56\xb9\x77\x3c\xa9\xbc\xa3\xcc\x25\x60\x3b\xda\xdb\x34\x57\xed\x73\x37\xcc\x99\xe6\x60\x10\x0c\xac\xaf\x5c\xc9\x23\x9a\xb7\x5f\xd1\xef\x70\xbe\xd0\x2b\x6c\xd9\xb3\x3e\x7b\x94\x99\x49\xc5\x5c\xc2\x92\xc0\x4a\x4a\xf4\x32\x21\x70\x34\xe6\x68\x82\x9f\x49\xa1\x4b\x97\x43\xa2\x1b\x9e\xf3\x54\x54\x31\xba\x3e\xbb\x24\x33\x41\xb4\xa4\x5f\x76\xa0\x64\x7b\xfa\xae\xb8\x13\xc3\xbe\x0e\xfb\xfa\xe8\xf7\xf5\x45\x92\x4a\x45\x44\x47\x4a\x3a\x06\x43\xe2\x56\x02\x9c\x69\x6c\x30\xe3\x3c\x19\x34\xb0\x89\x34\xa7\x78\xc1\x13\x56\x08\xf8\x90\x06\xe9\x80\xa7\x20\x1f\x15\xae\x4d\xae\xef\x3a\x2f\x73\xd8\x0e\x6f\x09\x19\x9c\xcb\xac\xe3\x00\x25\xb6\x12\x71\x70\x55\x2b\xcb\x5a\x42\x7b\x17\x73\x2e\x8c\x7c\x93\xb9\xcb\xf2\x21\x96\x0e\x93\x13\x45\x28\x73\x64\xcb\x5f\x82\xfd\xac\x09\x6c\xe4\x8e\xdf\x53\xae\xb0\xfc\xf6\xac\xcf\xb4\x10\xf5\x44\xe6\xc6\xdc\xaa\xc5\x94\x3f\x6a\x59\xfc\x54\x12\x26\x21\xdc\xfb\x8f\xc6\x3d\xa7\xb7\xb8\x33\x57\x1b\xd5\x94\x4c\x67\x09\x56\x10\x74\x9d\xf5\x02\x21\xba\xb6\x51\x2b\x25\xe5\x01\xd0\x20\xe7\x9b\xb9\xd8\xdf\xcc\xf0\xc7\x44\x41\xe6\xb8\xa2\x0a\x74\xa6\x38\xd5\xe4\x59\x1c\xfa\x4a\xd3\x95\xd9\x15\x82\x83\x9f\x24\x4e\xb7\x63\xfc\x72\xb1\x8d\x95\x9c\x31\xd3\x16\xee\x6d\xcc\xfb\x07\x67\x37\x8a\x04\x67\xa5\x68\x18\xad\xcc\x99\x95\x1e\x1a\x76\xe0\xfc\xd7\x84\x9d\xbd\xd0\x27\x3a\x23\x31\xc5\x10\x01\xaf\xff\xfa\xa0\xe7\xf5\x1f\x17\x77\x37\xd7\x83\x3c\x93\xe7\xbf\xfa\xac\x93\x48\x9e\x65\x29\x20\xc6\x59\x16\x6e\x3f\x13\xc4\x89\x84\x76\x2e\x60\x75\xcd\xcd\x88\x7d\x56\x37\x82\x98\x47\xf2\x0c\xbf\xc8\x33\x3c\xc5\xff\xe4\x0c\x5c\xe9\x1d\xf8\x78\x91\xf0\x34\xfe\x05\xab\x68\xf2\x01\xce\xb5\xfa\x40\x9e\x09\x53\xc6\x4d\xa5\xc9\x15\x43\x4e\xb2\x84\x68\xfd\xff\xd0\x63\xce\x93\x8a\xa4\xd6\x64\x23\x32\x53\xe8\xff\x15\x64\xc8\xb9\xaa\xbe\xa4\xf8\x68\x24\xc9\x5a\x17\x52\xae\xa4\xdd\xdf\xa0\xbf\xff\xe7\x77\x7f\xd6\x5b\x68\x13\x1a\xf7\xee\x6f\x06\xfa\xfd\xff\xb8\xb4\xef\xcb\x35\xd8\x9d\x49\xa5\x95\xd6\xd5\x6c\xa8\x61\x02\xe7\x53\x06\xb7\x9f\x00\xe7\x05\xb0\x37\xd8\x0e\xf9\x3a\x56\x71\xb7\xcb\x42\xeb\xdb\xa9\x6c\x1b\x11\x13\x54\x6c\x6f\x8e\xe8\x14\x31\x8e\xa6\x26\xd6\x14\x33\xf4\xb7\x1f\xbf\xaf\x5e\xc0\x54\xd0\x8d\x3a\xa4\x16\x85\xc2\xeb\x52\xd2\x7f\x12\x89\xf4\xae\xd1\xbb\x98\x4f\x75\xd7\x82\xc8\x09\x4f\x62\xf4\x42\x40\x4d\xb2\x71\xa0\x99\x56\x2e\x48\x9f\xf9\x4d\x40\xc8\x21\xc2\x89\xe2\x63\x02\x77\xb5\x53\xd4\x14\x11\x5a\x54\x31\x59\x1a\x8a\x0b\x72\x62\x80\xd9\xee\xff\xea\x62\xab\x61\x9a\xf0\x93\x4b\x6a\xb1\x26\xb9\x78\x58\x3d\xf3\x51\xd9\xf4\x8a\xea\x6d\xf8\xe5\x45\xb6\x66\xdb\x6a\xd2\xd8\x24\x14\x6b\xc3\x2a\xaf\x4c\xf5\x60\x68\xc4\xd9\x20\xa1\xec\x69\xa3\xc5\x70\x89\xe1\x48\xb7\x60\x69\xa6\x5b\xcc\xec\xdc\xc6\x02\xb2\xc6\xf9\xf8\x98\x26\x89\x49\x6d\xf1\x97\x07\xe4\x2e\x43\x37\x10\x06\x66\x26\x07\x94\xc4\xd6\xef\x65\x35\x61\x41\x18\x04\xbc\xf5\xd9\x70\x6e\x7d\xb6\xf2\x04\xc9\x34\x9a\xb8\xcc\xbc\x88\x33\xa9\xc5\x68\x2e\x50\xc4\xa7\x53\xad\xf5\xc2\x92\x29\xce\x13\x69\xa3\xdd\xd9\xa9\xc2\x91\xea\xb3\xbc\xbf\x15\x27\xcf\x14\x65\xda\x2e\x75\xaf\xb9\x4b\x27\x2f\xfe\xb4\x54\xe0\xa6\xb1\x0f\x45\x01\x46\x30\xe3\x89\xf2\x40\x2d\xf8\xe2\x59\x32\x0b\x56\xa3\x19\xc8\x09\x17\x6a\x10\x57\xf2\x9c\x95\x9b\xa6\xcc\x08\x19\x39\x4d\x20\x68\x98\x3f\x6b\xe1\x9f\xbc\x64\xc6\xd7\x65\x43\xd0\xbb\x7a\xd9\x08\x9a\x1d\xa3\xa5\x23\x5b\x77\x0b\xd6\xd0\xca\x00\x93\x44\xc5\x98\xf0\x55\x63\xbc\x87\xb7\x2e\xf4\x4b\x4b\x89\x57\x3e\x77\x4e\x08\xe2\x71\x8e\xa1\x67\xee\x75\x9b\x11\xb2\x8c\xa6\x16\x3a\x61\x7f\x99\xa3\xcb\xa6\xf2\x58\xb4\xe4\xea\xb1\x80\xc9\x5e\x12\x90\x35\xb1\x18\x52\x25\xb0\x28\x00\xa0\x64\xfa\xa0\x24\x58\x40\x7c\x56\x9f\x19\x38\x3c\xa3\x29\xc4\x28\xa6\x12\x12\x44\xe0\x2e\xf5\x9c\x61\xa8\x99\x12\x58\x3a\xda\x79\x9e\xa3\x89\x3f\x87\xc0\xb2\x7c\x6b\x38\x66\xa7\x3b\xca\x60\xbf\xb4\x7e\xc6\xa3\x34\x17\xe4\x22\x90\x70\x2d\x54\x10\xa2\x4c\xd2\xf1\x44\x21\xca\xac\xdd\x11\x27\x63\x2e\xa8\x9a\x4c\xe5\x09\x1a\xa6\x52\x6b\xa1\x26\x58\xcd\xc4\xa3\x10\x15\x35\xe2\x42\xdb\x26\x11\xc7\xa5\x06\x17\x55\x94\x0d\xb6\x46\xb3\x43\xd9\x2d\xdd\x15\x2b\x36\x4e\x27\x83\x4f\x2c\xb7\x41\x89\xcc\x50\x37\x91\x89\x03\xe4\x0e\xb0\xea\xf7\x94\x48\x55\x77\x0e\x00\xec\x72\x67\x5e\x8a\x43\x54\xd2\x42\x26\x19\x54\x10\x17\xbb\x0d\x92\x57\x11\x70\xd3\x80\x52\x65\x4e\xa7\xe9\x4c\x55\x06\x6e\x2d\xba\x8a\xee\x3c\x28\xa3\x66\xc4\x86\x64\x2c\xd8\xcd\x00\x40\xd7\x67\xf7\x84\xd4\xe3\xd3\x2d\xac\xfd\x6f\x70\x94\x60\x0a\x36\xd1\x63\xf9\x96\xdf\xc6\x89\x7d\xd9\xbd\xbf\xb8\xeb\xdd\x1a\xc8\x89\x9b\xbb\xcf\x9d\x87\x41\x85\x5f\xbb\xe2\xa9\xcf\x9d\xbb\x1f\x2f\x57\x3f\xf6\xc3\x43\x31\x2b\xbb\xe2\x91\xbb\xfb\xe5\xc9\x1c\x0d\x86\x58\x91\x14\x56\xd9\xcf\x39\x9a\xcd\xd5\x84\xb3\x2c\x44\x21\x2e\xf0\xa6\x53\x64\x32\x82\x15\x84\x10\x09\xa9\x2a\x1c\x87\x0f\x10\x97\xb3\x5a\xc2\x2c\x2e\x96\x41\x97\xdb\xa9\x68\xb4\xc6\x89\xfc\x94\xf0\x21\xf8\xad\xad\xec\x63\x81\xe9\x96\x44\xa0\x6f\x19\xef\x73\x49\xe5\x2c\xc1\xf3\x85\x1e\x56\x5d\x39\xd7\x78\x4a\x20\xe2\x38\x87\xc5\x73\xc9\x22\x7a\x65\x20\x81\x29\xbb\xd7\xe9\x08\x32\x99\x14\xc5\x8a\xa0\x21\x51\x2f\x90\x37\xe7\xbe\xcd\x6c\xa9\x2e\x60\x44\x9e\xf5\x19\x98\x73\xfa\x9a\xc8\x71\x0a\xd1\x7e\xfd\x77\x27\xa8\xff\x2e\x26\xcf\x24\xe1\x33\xbd\xf2\xfa\x8b\x9a\x4b\xa6\x3b\xc5\x34\xb9\xe6\x2a\xb3\xcc\x6d\xb3\x9e\x82\x44\x74\x06\x92\xf9\x80\xe8\x76\x0f\x27\x78\x14\x76\xb2\x63\x67\x30\x06\x84\xe3\x58\x2b\xd9\xc0\xca\xdc\xf0\xf2\x10\x20\xe6\x4d\xbd\x50\xec\x72\x1d\x91\x22\x33\x7f\x9b\x1e\xfd\x36\x8b\x66\xcf\xca\x15\x60\xcf\x7b\x74\xc9\x6e\x7b\x91\x6b\xad\xe4\x47\x32\x87\x14\x8c\x5b\x4c\xc5\x86\xae\xd9\xaa\x98\xd7\xbd\x38\x69\xbb\x15\x1d\xb5\xc8\x5d\x5b\x4d\x87\xed\x1c\xb7\x59\xac\xde\xa1\xb4\x54\x17\xcb\x95\x75\xdc\x50\x6d\x7d\xac\x53\x52\x6b\x43\x18\x50\x59\xf1\x9a\x91\x68\x0d\x8d\x2b\x1b\xe0\xbd\x7e\x6f\xa5\xa6\x92\x89\x6b\x2e\xfe\x2e\x5f\x05\x9b\x1c\x5f\xce\xc7\x27\x2b\x47\x1c\x25\x5c\x16\xb1\x72\x1a\x0f\xfa\xc2\xbe\xba\x6c\xdc\x5d\x7f\xfb\x6a\xb9\x70\xad\x80\x86\x0a\xc2\x97\x30\x2e\xcd\x3d\xa3\xac\x87\xcc\x3e\x7d\x82\x28\x44\x5b\x82\x42\x96\xe4\xc8\x01\x2c\x46\xb9\x1b\xa4\xcf\xf2\x98\x15\x89\x5e\x48\x02\x61\x6e\x11\x9f\xce\xc0\xc4\x6f\x87\x6b\x5b\x22\xb1\x89\x18\x3e\x41\x3c\x55\xba\x31\x93\x93\xe3\x8c\xb8\x36\xe1\x27\x77\x7b\x18\xdf\x9b\x0d\x7e\xcf\xf0\xb2\xcd\x5e\x37\x77\x29\x65\xe8\x13\x51\xd0\x0a\x94\x59\xf0\x27\x08\x7a\x42\x39\x84\xb2\x9a\xf6\x5b\x9c\x28\x3b\x93\x35\x56\x3e\x07\x4e\xf9\x3e\xe1\xc3\xe5\x46\x02\x68\x1c\x3d\xde\xf5\x9c\x45\x32\x8f\x9f\xf2\x40\x99\x0b\x1e\xc5\xee\xed\x5d\xf7\xa2\xf3\xd0\xbd\x3c\x43\x8f\x92\x68\xf2\x64\xd3\x85\xfc\xea\x4c\x25\x31\x23\xb7\x48\x2c\x4c\x2a\x82\xeb\x0c\x21\x44\x88\x42\x16\xf4\x0a\xc6\x51\x84\x69\x59\xbe\xb1\x01\x24\x85\x5a\x43\x1d\x00\x0b\x95\xe7\x69\x23\xf3\x56\x9d\x40\x88\x93\x1a\x1c\x4f\x94\x9a\x19\xef\x74\x31\x32\x6f\xd5\xf6\x29\x46\xf4\xed\x7b\x32\x70\xb4\xd4\x84\x50\x81\x1a\x4d\xcb\x6c\xaa\x41\xf3\x39\x79\x21\xee\x9f\xf1\x6c\x79\xfa\x29\x7e\x29\x6c\x5a\x23\x0a\x7b\xbe\xfb\x7d\x9f\x03\xc7\xd6\x06\x86\x15\x6e\x3f\xc1\xdc\xa1\x65\x78\x6b\xc6\x37\x4d\xc6\x87\x74\x46\x32\x7f\x62\xa5\x41\xd8\x38\x56\x89\xe0\xec\xc0\x37\x94\xa1\xc2\x95\x78\x82\x46\xf4\x8b\x6d\x34\x8f\x6f\x77\x8f\x7a\x01\x0f\x35\xf1\x94\x13\xbc\x78\xa6\xd6\x10\x1b\x6e\xe1\xfd\xa5\x42\x24\x97\x5a\x24\x8a\xb4\xb8\x24\x48\xc4\x85\xbe\x29\xa0\xdb\xdc\x0b\xb1\x4a\x64\x50\x58\x68\xa2\x2c\x7a\x65\x96\x9d\xfe\xbc\xb4\x4a\x8c\x15\x39\xd5\xa2\xd7\x8a\x04\x68\x9b\x23\x03\xd9\x34\x58\x79\x70\x60\xf9\xcd\x33\x24\x63\xcc\x5c\x68\x76\xcd\x70\xdd\x95\xb7\x05\xab\xd2\x2a\x10\x86\xf4\x30\x90\xaf\x20\xf5\xa7\x30\x0e\x39\x03\x7a\x2e\x1d\x87\x8d\x7e\x69\x03\xd9\x5e\x70\x16\x8c\x53\x33\xd8\x74\x16\xb7\x69\xb0\x09\x96\x0a\xd9\x31\xd5\x99\x22\x3c\x15\x71\xbf\x46\xd8\x82\x6e\xdf\x54\x79\xd3\x5b\xa8\xa8\xc5\x12\xf0\x8c\x48\x87\x9b\x62\x50\x62\xb4\x4e\xe3\x04\xe1\x0b\x58\xa1\xec\x6c\xdf\x19\x29\xcb\xdd\x12\x3e\x33\x81\x20\xfd\xc5\xa6\xcf\x50\x87\x2d\xe0\x65\xb9\xb8\xac\x02\xbd\xcc\x9d\x84\x93\x17\x3c\x97\x68\x26\x0c\xb4\x8c\x89\xdc\x77\x93\x07\x0d\xac\xf8\x52\x16\x0a\xa1\x5c\xea\x04\x02\x5b\xcc\xea\xa0\x39\x27\xf7\x0e\xf6\xe0\xca\x2b\x45\x95\x67\x02\x79\xde\x5c\x6e\xab\x68\xc0\xea\x14\x19\x44\x13\xcc\xc6\x64\xe0\x8c\xac\x9b\x68\x4b\xba\x9d\x0b\x68\xe6\xd2\xb6\x52\x7d\x39\xdd\x1a\x85\xc9\x96\xb5\x31\x8f\x66\x06\x44\x7d\x08\xa4\xc2\x63\x82\xcc\x88\x1a\x99\xa5\x0b\x11\x63\x16\x6c\x18\xf4\x04\xdb\x6a\xb7\x18\x45\x5f\x27\xbc\x43\xe8\xd3\x15\x1e\x92\xe4\x75\x22\x27\xa0\x6b\x6b\x9c\x07\x6f\x9d\xc9\x06\x20\xe8\x05\xec\xf9\x25\x96\x61\xad\xf7\x22\xad\xca\x0d\x58\x36\x4f\x38\x72\xf6\xa4\x6d\x33\x51\x57\x02\x65\x93\xa9\xd6\x15\x46\xf1\xaf\x3d\xaf\x80\x48\x95\x81\xcd\xbf\xfe\xca\x36\xe5\xcd\x06\xe2\xd5\x31\xa9\x19\xc7\xd6\x85\x4c\x56\x4e\x65\x63\x90\x81\x86\x35\x0b\x7b\x23\xc4\x38\x23\x88\xca\xfc\x61\x55\x4c\x87\xca\x20\x7a\xb4\x88\x6f\x8c\x2f\x59\xf1\xb1\xac\xa6\xd4\xbe\x2d\x2d\x39\x78\x42\x66\x1b\x70\xf9\xdd\x8c\x68\x45\x15\x8b\x39\x40\x7c\x1a\x3e\x5c\x94\xe9\x56\x8e\x73\xe7\x02\xf7\x83\x43\x70\xf5\x22\x75\x15\x47\x20\x46\x96\x06\x87\x0c\x0e\xaa\x7d\xc8\xbe\x64\x61\x6a\xfa\x2c\xb3\x6c\xc0\x46\xa4\x12\x4d\xf1\x0c\x7c\x7a\x8c\xab\xfc\x2d\x03\xbb\xa4\xb2\x25\x3c\x71\x82\xb8\x34\xa5\xc1\x56\x53\x80\x8b\xf1\x36\xa1\x1a\xcd\xcb\x3f\x34\x37\x2c\xb9\xcb\x3f\x5f\xd5\x22\xb8\xa6\x03\x06\x1e\xd3\x67\xc2\xdc\x89\x3a\x71\x27\x52\x93\xc4\x4d\x39\x99\x9f\x62\x08\x72\x26\xb1\xef\x77\x59\xce\x0f\x8d\x39\xa8\x0d\xd6\xd0\xe6\x24\x7b\xa8\x0c\xe2\x31\x10\x6d\x05\x6c\x7d\x17\x96\xee\x9f\x11\x8b\x1a\x6c\xf2\xd0\xb1\x44\x7f\x64\x5c\xfd\xd1\xc3\x55\x76\xa6\x13\x78\xd5\x19\xc0\x4e\x16\xea\xe0\x00\xcb\xb0\xdb\x16\x61\x0f\xdf\x6b\x25\xe5\xb7\x8d\x4c\xc8\xc3\xee\xf7\x2a\x0b\x77\x17\x73\xf0\xea\x0a\x89\x85\x78\x01\x54\xbe\x94\xca\xe6\x56\x53\xab\x30\x3f\xe9\x05\x33\xab\x5c\x15\x20\x90\xad\x45\xa3\xc0\x80\x05\x3c\x82\x6d\x76\xdb\xb4\x71\xdc\xd6\x0a\x08\xe6\x6a\xab\xc8\x26\x59\xa6\x75\x5a\x81\x28\x06\xce\xd9\x22\x1c\x35\x18\xc3\x67\x7d\xf6\x91\x0b\x2b\x00\x48\x5b\xe5\x60\x88\xa3\xa7\x53\xc2\x62\x84\x53\x35\x31\x58\xbf\xd6\xab\x31\xb7\xbb\x41\xcb\x39\xb0\x6d\x32\x20\x0f\x2a\x23\x2c\x62\x57\x6f\xe3\x99\xbb\x51\xf4\x99\xd7\x08\xd4\x51\x80\xea\x59\x50\xd6\xb8\x4e\xd1\x25\x52\x6b\x77\x75\xb4\xa8\xaa\x6c\xbb\x50\xd7\x76\xf9\x39\x2b\x54\xea\x85\x0a\x10\x10\x5e\xc5\x47\x8b\xd4\xe9\x39\x5b\xa7\xd3\x2e\xf5\x7e\x5e\xf4\x81\x9c\x58\x7d\xc6\x18\xc4\xec\x0c\xb4\x9c\xf5\x9d\xe3\xb5\x05\xcc\xe2\x51\x2a\x20\x58\xb8\xaa\xcd\x6f\xa2\x09\x4d\x72\xcf\xc9\xb7\x27\xd9\x30\x75\x93\x09\x79\x26\x89\x41\xcc\x8f\x04\xe4\x05\x18\x9b\xe5\x77\xe8\x7f\x9b\x6a\xaf\xe8\xcf\x7d\xf6\x09\xd8\x70\x92\xcc\x01\xcf\x33\x6b\x19\xab\x52\x33\x4f\x95\x03\x50\x36\x11\x09\x15\x07\x62\xd6\x7a\x82\x9f\x49\x9f\xb9\x66\xfe\x37\x7a\x42\x7f\x42\x7f\xae\x53\x2e\x5d\x78\xff\x9e\xad\x2c\x1f\xbd\xe0\x79\xef\x96\xb3\x8c\xd2\xf2\x1b\x67\x84\x29\x98\x40\x2b\x70\x3d\x32\x58\x6e\xca\x9e\x79\xb4\x90\x43\xe2\x9f\x5a\x2c\x08\x53\x03\xc6\x63\x32\x20\x15\x0e\xd5\x25\x4c\x42\x0b\x01\xd7\x3c\x26\x2b\xdd\xa1\x19\x33\xfd\x05\x0c\x47\x32\x1d\x66\xcb\x01\xf0\x02\x59\x2e\x79\x66\xfb\x28\xee\xb4\xea\x91\x67\xd8\xb7\x9b\x8c\x7b\x53\x57\x6e\x2e\x36\xe2\x1c\x7c\xb7\xda\x9d\x98\x60\xe5\xa4\xc9\xf2\x71\x2c\xbb\x21\xf4\xc3\x7a\xe6\xf6\xb2\xf2\x50\x7d\xa1\xf2\x8a\xa0\x63\xaa\xb5\x87\xe6\xee\x62\xe0\x84\x9b\xf8\x52\x0c\xc4\x69\x23\x67\x4a\x4e\x0a\x07\xf3\x72\x9a\xed\xbf\xdc\x05\x3a\xe4\x69\x59\x7d\xb0\x04\xa0\xd2\x0f\x36\xb0\x9a\xc2\x5c\xf3\xe1\xb1\xc9\x3f\x24\x13\x6a\x32\xfe\x3b\x17\x57\x48\x9f\x0e\x3e\x35\xb0\x58\x40\xb4\x54\x4d\xb8\xa0\xff\x5c\xb6\xb7\xb1\x50\x74\x84\x23\x35\xd8\x49\x15\x99\xfa\xcd\xd4\xb1\xfd\xf4\xea\x2b\xd5\x2d\x20\x1c\xe0\x67\xe2\x05\x20\x42\x78\xa1\x6d\x45\x66\x8e\xdc\x32\xbf\xe5\x02\x31\xfe\x92\xc3\x62\xb9\xf7\x01\x09\xda\x4b\xdc\xc0\x5a\xe5\x9a\x41\x04\xb1\xa4\xb0\x3f\x01\xa4\xea\xbd\x32\x49\x99\x00\x70\x6e\xe0\xa5\xf4\xf6\x9c\x60\x16\x27\xee\x0a\x41\xdc\x44\xf4\xcc\x5f\xf0\x7c\x2d\x9f\xba\x1f\x57\x99\x67\xe9\x99\xe5\x2f\x2a\x41\xc0\x03\x8c\xa4\xa6\x0a\xaa\x66\x95\x22\x8c\x86\x29\x00\xeb\x6a\x9a\x8c\xd2\xc4\x54\xe3\x88\xb8\x88\xcf\xfa\xcc\x06\x54\x7b\xbd\x69\x11\xd0\x69\x4d\x58\x65\x0d\x52\x8b\x3f\x6a\xeb\x7d\x18\xb3\xdc\x52\xb9\xfe\xa7\x94\xa4\x3b\x4a\xab\x7c\xd5\x40\xf4\x07\x3c\x96\x79\x64\xb9\xa1\x8d\xbe\xf2\x72\xfa\xfe\xae\x67\x2a\xbd\x44\x64\x67\x2e\xce\x70\xbd\x8c\x9d\xc5\x14\xb1\x5d\xcb\x4c\x77\x67\xea\x19\xec\xc0\x4e\x77\x88\x20\x9d\x45\xd1\xb3\x82\xab\xdb\xed\xf7\x9c\xa5\xe5\xa2\xc3\x18\xbf\x5c\x61\x88\x92\x50\xb7\x47\x3b\xd8\x06\x77\xc7\xa2\xae\xb2\x34\xd4\x3d\xb7\x8a\x65\xb7\x45\x45\x86\xbc\xe2\x90\x4b\xf3\x22\x28\xc0\xfe\xcd\xf3\x87\xb3\x7a\xcd\xee\x16\xf6\x79\x8c\x16\xfe\x8c\xb6\x00\xc1\x3a\x8e\x84\xf3\xea\xab\x73\x0d\xbb\x8e\x6d\xa8\xd8\xf5\x62\x30\x46\xdd\x89\x30\x2c\xa9\xad\x47\x62\x11\xf3\x67\xe5\x61\xc8\xca\xbb\xbc\x8e\x55\x38\x93\x18\x0f\x77\x32\xb2\xed\x38\x88\x70\x34\xa9\x9d\xd4\x90\xf3\x84\x60\x56\xa7\x14\x54\xfe\x5c\x3e\x22\x06\xb1\x16\x58\x77\x92\x00\x6c\xb3\x23\x81\x2d\xf5\x99\x6b\x45\x2c\x06\xb8\x7d\xc3\xc3\x4d\xc0\xa7\x1b\xa8\x22\xcc\x19\xd4\x28\x1b\x27\xa4\x4c\x2b\x5b\x17\xe1\xc4\x76\x92\x44\x69\xe2\xd5\xfa\x9c\x11\xa1\x47\xad\x49\xfc\x4c\x98\x56\xc5\xec\x38\x9c\x87\xea\xc5\x65\xb9\x67\x15\xbe\x4e\xb2\xae\x9d\x93\x14\x52\x49\xe3\x3e\x83\x83\xcb\x8b\x87\x55\xef\x55\xa9\xb5\x37\xdf\xdc\xb7\xf1\xe9\xf4\x84\x88\xb5\x8f\xe7\x7d\xd1\xf6\xbf\xf6\x99\x34\x7d\x0f\x20\x70\x64\x6b\x7f\xa9\xe7\x53\xcb\xf1\x37\xcc\xc2\x3a\x8c\xb5\x03\x79\x06\x20\x14\xa7\x18\x4b\xec\x45\xe2\xd4\x61\x7c\xed\xf5\x2e\xc9\x6b\x9a\xb8\xdb\xa0\xe1\x50\x96\xc6\x1f\x34\x8c\x26\x00\xa3\xef\xb2\x73\x7b\x65\xa5\xfa\xa2\x1f\x3e\x4b\xda\xca\x63\x57\x6d\xd5\x5e\x25\x30\x40\x4e\x00\x50\xc0\x2f\xc6\x70\x41\xa5\x11\xee\x5d\xed\x92\xe9\x4c\xcd\x6d\xa9\x3b\xb8\x17\x0b\xf2\x3e\xc0\xf8\x55\xf9\xfc\xcb\x77\x64\x5c\xf0\xfa\x57\x75\x06\x1d\x59\x6b\x4d\x65\x93\x8e\xd0\x3e\x2c\x4c\x09\x86\xa3\x2e\xc4\xc7\x54\x0d\x1e\xe0\xa4\xd6\x44\xb8\x03\xa6\x09\xca\x51\x0e\xbd\x61\x11\x7d\x95\x48\x89\xe6\x5d\x38\x49\x4a\xf3\xc2\x90\xe3\xae\xb2\xca\x81\xc3\xbc\xbc\x71\xf3\x08\x84\x04\x0f\xc9\x5a\x31\x07\x57\xe6\x85\xa5\xbb\x08\x1e\x81\x70\xfd\xd9\x2c\x99\x37\x4b\x13\xf0\xb5\xdf\x4a\xe4\xbb\x55\x03\xf3\xf1\xf2\x96\xde\x4d\x45\xcc\xb9\xcd\x86\x28\x49\x94\x0a\xaa\xe6\x03\x6b\x4b\x6d\xce\xb4\xee\xed\x9b\x17\xf6\xc5\x26\x86\x8a\x73\xe4\xfa\x73\xb6\x5b\xb8\xa7\x04\x35\x65\x91\xec\x14\x9a\x2c\x37\x4e\xd5\xa4\x12\x11\x6b\x19\x61\x1d\x24\x57\xb3\xa1\xea\x2e\x36\x1d\x9e\x2d\xb7\x32\xe0\x23\x07\x76\xd5\x9c\xb0\xe5\x3a\x34\x6b\x18\xa1\x1d\xa6\xf6\x4c\x50\x2e\x6c\xb9\x97\x26\x91\x8a\x53\xfc\x65\x30\xc3\x02\x27\x09\x49\xa8\x9c\x6e\x6e\x32\xff\xeb\x5f\x96\x8e\xf6\xc2\x94\x25\x32\x83\x9d\xe2\x2f\x74\x9a\x4e\x11\x4b\xa7\x43\x2b\xe5\x62\xf9\xe4\x23\x9a\x3a\xfc\x05\x03\xcc\xe5\x06\x58\x40\x81\x10\x1e\x46\x6d\x9f\x79\x68\xe5\xd6\x54\x81\xa3\x09\x25\xcf\x80\xa5\x2a\x18\x91\xf2\x0c\x5d\x73\x45\xce\xd1\x67\x3c\x7b\x00\x41\xcd\xd4\x09\x1d\x1b\xa7\x03\x96\x48\x4b\xad\x29\xa3\xea\xa4\xcf\x2c\xc4\xb9\xa3\xca\x87\x88\x33\x03\x73\x1b\x01\x61\xb3\x26\xc0\x8a\xee\xf0\x5e\x95\xcb\x56\xa5\xb2\x86\xd8\x02\xbf\x0c\xbc\x90\xe4\x81\x49\xf9\x58\x63\x1f\xdf\xe1\x17\x13\x84\x7f\x89\x15\x36\x25\x80\x97\x49\xee\x36\xca\xcd\x96\x85\x32\xe8\xce\x2e\x1a\x88\x5b\x88\x91\xac\xa0\x9d\x09\x39\xfe\x86\x9e\x91\x33\xf4\x7d\xc2\x87\xf2\x24\x37\x55\x99\x1f\x25\x51\xf2\xc4\xf8\xfd\xe0\x6f\x93\xdf\xf7\xad\xa3\x7e\xce\xf7\xa1\x96\xe3\x88\x7e\x31\xc8\x26\xf2\xaf\xe7\x1f\x3e\x4c\xe7\xa7\xc3\x34\x7a\x22\x4a\x7f\x02\x99\xa2\x92\x42\x0e\x16\x0c\x57\x81\x8c\xad\xa2\xce\x22\x40\x59\xa3\x1d\x69\x73\xa5\x24\x01\x30\x7c\x7d\xa5\x67\xd5\x72\x1d\x9e\x15\x67\xd5\xa5\x40\xed\x94\x45\x5a\x77\xbc\x0a\x28\xda\x87\xd1\x56\x4c\x35\x60\x1f\xbc\x7b\x94\xe0\x71\x49\x65\x59\x43\x49\xb9\x99\x52\xbb\x8b\xf4\xdc\x21\x88\x46\x9f\xb2\x62\xe8\xe0\x7b\xe7\xe5\x05\x6f\xad\xf5\x62\x9d\xf5\x59\x47\xa2\x17\x62\x8a\xfc\x42\xa2\x29\x38\x7d\x52\x2a\x27\x59\x9a\x29\x98\xa1\xa1\x51\x83\x71\x6c\xa0\x30\xac\xe2\xe8\x34\x2b\xe7\x16\xb3\x1a\x28\x4e\x24\x39\xd1\x0d\x83\x49\xd5\x45\x87\xa2\x17\x81\x67\x33\x22\xfa\xcc\xe2\xd5\x02\x2a\x3b\xe7\x36\xf2\xa7\x2e\x45\x20\x68\x94\x87\xd5\x28\x3d\xda\x93\x62\x16\xea\xaa\xf3\x0d\x49\xab\xcb\x28\x5c\x95\x87\xe9\xc8\xa7\x65\xd1\xa6\xe1\xfb\xaf\x6f\x36\x6e\x38\xe6\x55\xda\x79\xa7\x94\x7b\x01\x35\xc4\xa7\xa0\x40\xca\xbc\x54\xaa\xb3\xf5\x65\xea\x7b\x41\xcc\x01\xb8\x73\x78\x39\xe6\x44\x7a\x46\x7c\x94\xd9\xe2\x12\x3a\x22\x5a\xfa\xe8\x33\xbd\x8d\x7d\x87\x83\x41\x4d\x77\x20\xea\xba\xd3\x48\x70\x29\x6d\x3a\x85\x69\x67\x79\x52\xdc\x16\x05\x1a\x0d\xf4\x7b\xef\xe6\x7a\xb0\x58\xaa\xd1\xfb\xcd\x15\x6d\xb4\x3f\x56\x22\x27\xd4\x36\xb5\xb2\x44\x63\x4e\x8b\x35\x8a\x34\x7e\xb8\xb8\xea\x65\x95\xc9\x4a\x5d\x2f\x56\x69\xf4\xe1\xf2\xeb\xeb\x34\x2e\xce\xd8\xab\xd8\x58\x6a\x62\x49\xcd\xc6\xd5\x8b\x55\x0c\xe2\xde\x06\x0b\xb1\xb4\xf4\x2b\xf9\x43\x71\xcf\xac\xca\x35\xd8\xd1\x32\xd5\x5c\x2b\x11\x08\x8c\xfb\x0e\x5c\x00\xc1\x4b\x3f\x25\x15\x9e\xce\xfc\x3c\x5a\x07\x06\x6b\xa7\x69\x8e\x5a\xdd\x25\x78\x50\x90\xfa\x08\x9b\x20\xa1\xf2\xe0\x16\x96\x62\x3d\x8f\xd7\x83\xc5\xbe\xdf\x45\x6c\xfa\xe1\x12\xd3\x93\x79\x1e\x0c\x29\xad\xec\xe6\xea\xaa\xd7\xd8\xfd\x87\x24\xc3\xf9\xaf\x5d\xd0\x6d\x33\x4f\x33\x3c\x30\x41\xb0\xb4\xee\x6f\x48\xd0\x2c\x25\x6f\xad\x61\x1e\xce\xc6\x6c\x52\xbc\x4f\xb3\xca\x1a\xde\x55\x63\x8b\xc5\x45\xee\x20\x52\x21\xc8\x33\x11\xb0\x77\x6c\x28\x15\x2b\x1e\x55\x9c\x08\x82\xe3\xb9\x47\x91\x2c\x8e\xc3\xf4\x0c\xe6\x31\x49\xa7\x5a\x81\x07\xd5\x84\xf1\x53\x3e\x73\x3a\x4b\xe1\x29\x28\x8b\x42\x47\xfa\xc6\xf2\xa2\x40\xf4\x1b\xec\x94\x7c\xa1\x52\x69\xb9\xa2\x22\x04\xd6\x35\x02\x12\x0f\x14\x4b\x9b\x10\x7b\xc3\xf5\xdf\x75\xbe\xbf\xb9\x7b\xe8\x5e\xf6\xdf\xe5\x29\x17\x2e\xa7\x30\x83\xf9\x72\x55\x1b\x38\xeb\xb3\x2c\x4e\x39\x43\xb5\x86\xb5\x44\x38\x8e\xf3\xf8\x68\xab\x44\x1a\x99\x6d\x29\x47\xf6\x4e\xc5\xca\x08\xe5\x25\xcd\x3c\x42\x62\x59\x5b\x4f\xd6\x12\xd7\x59\xe1\xe4\x98\xf4\xb8\x25\x79\x4c\x3b\xba\x6c\x7c\x40\x5e\x65\x74\x6d\xa2\x1c\x62\x24\x23\x2f\x4e\x57\x82\xdb\xf9\x03\x36\x97\xf0\x7a\xdc\xce\x2d\xc8\x06\x8b\xfa\x91\x7e\x21\xf1\x5d\x8d\x54\xb5\x93\x34\xa5\x46\x01\x96\x95\xab\x90\x32\xba\x8e\xc6\x9f\x4d\xe5\x51\xbf\xd7\x9c\x2d\xdd\xe4\x38\x7b\x39\x66\x2e\x00\xe6\x2a\x84\x51\x44\x84\xc2\x94\xa1\x11\x1c\x6c\x16\xcd\x11\xa0\xb0\x10\xf0\x61\xff\x05\x4d\x29\x03\x38\x88\x65\xa4\x7d\x2c\xce\x63\x0d\xa1\xf5\x73\xef\xfa\xf1\xa1\x20\xaa\xfe\x70\xf3\x58\xac\xd4\xdf\xf9\x75\xa9\xac\x5a\x6a\x61\x59\xb0\x90\x37\xc5\x3c\xb5\xd4\x42\x07\x67\x94\xa9\x9c\x68\x32\x57\xe4\xf1\xee\x6a\x2b\xf9\xae\xda\x59\x56\x0b\xfc\xee\x4b\x57\xd5\x30\x17\x4d\x5e\x8d\x49\xb4\x0a\x9a\xb6\xf9\x3e\x32\x51\x50\x9a\x0e\xd6\x9a\x68\x61\xeb\xb0\x44\x33\x2c\xac\x1f\x2a\x36\x01\x50\xc5\x72\x6f\x46\xf3\x5a\x06\x0b\xf2\x89\xa8\x9f\xf5\xd5\xc7\xd9\x2e\x92\x4b\xac\x28\x0b\xfe\x51\x32\x78\x36\x0d\xaf\x71\xd2\xec\x50\x96\xe4\x2f\x39\x61\x19\x7a\x40\xb6\x07\x1f\x4c\xe3\xcc\x94\xfd\xef\xe8\xe6\x80\x22\x2e\x4c\x53\xab\xa4\x9c\xe9\x1d\x69\x30\x72\x1d\xb0\xae\xd7\x1c\x1f\x99\x97\x1b\xc2\x0c\x7a\xc9\x02\xba\xad\x9c\x94\xa8\x73\xdb\xab\xa0\xf5\x55\xd9\x85\xf4\xb6\x6a\x14\x25\x99\x37\x6b\xd7\xc8\x57\x5e\xce\x69\x2b\xa0\xae\xec\x4c\xb7\xc3\xb6\x32\x4e\xff\xdb\x62\x24\x41\x1b\x20\x98\xab\x54\x86\x42\x2e\xf9\x0a\xb4\xe5\xf5\xd2\x2b\x73\x32\xac\x89\x64\xe5\x0f\xc8\x66\xd7\xf8\xe8\x4d\x8b\xa1\xdb\x27\x3e\x9a\x13\x37\x55\x90\x6d\x6c\xc1\xce\x10\xae\xf2\xd9\x34\x81\xb8\xfa\xd9\xec\xe8\x0c\x01\x05\x30\x5d\x5c\x95\x4d\x17\x72\x6d\x01\x09\xfc\xe9\xfa\xbb\x6d\x3d\x54\xac\x7c\x7c\xce\xfc\x6d\x01\xc6\xf1\x0c\x5b\xbb\x03\x28\x51\xae\xfc\x45\x55\xb5\xc4\xb3\x3e\xf3\x02\x56\xa4\x51\x7b\xf4\x19\x71\x15\x67\xa0\x8c\x31\x03\xb4\x72\xc8\x7d\xca\x84\x9f\xc2\x0a\x94\x71\x0f\xd4\xa4\x58\x33\x66\xa1\x1f\x7b\x3a\xe5\x04\xbb\xec\x52\x67\x41\xb1\x71\x80\xbe\x7d\x09\xda\xf3\xaa\x44\xd8\x8e\xc1\x1c\x0d\x46\x0b\xec\xd5\x20\xf4\x10\x09\x62\x4e\x24\x7b\xaf\xb2\xfc\x5d\x9a\xcc\x5d\x48\x75\xc9\x3d\xa0\xa5\x3a\x4c\x6d\xcb\xcb\x0f\xf8\x0e\x20\xb7\xd6\x55\x1c\xbc\x63\xb5\xd2\x4c\xe5\x7c\xbc\xb0\x13\xfc\x58\x24\xe8\xb4\xce\xaa\xfe\x65\x46\xa2\x4d\x70\x81\x6e\xb1\xc0\x53\xa2\x88\x58\x16\x8e\x54\xac\x10\x0e\x22\x8e\x5b\x41\xdb\xaf\x59\x45\x53\x3e\xa5\x5c\x67\x27\xd3\x6e\xaf\x56\xe1\xfc\x64\xb3\x58\x0b\xd2\x4c\x4f\xe3\x67\x6b\xf9\x5f\x73\x16\xb6\x9f\x7c\x1a\x36\xda\xca\x83\x75\xda\x76\x4e\x87\xc1\xb7\x79\x58\x40\x8a\x29\x84\x0b\xb5\x04\xd8\x66\xf5\x28\xeb\x10\x6d\x56\xf1\xd2\x9d\xf0\x6e\x97\xe1\xe0\x32\x93\x4b\x87\xaa\x90\x3b\x01\xbb\x04\x54\x2a\x03\xee\x52\x8d\x4a\x03\x42\x4b\x55\x84\xa4\xe7\xf6\xb3\x98\x85\xb9\x41\xd7\x4a\x56\xe5\x8a\x61\x25\x72\xad\xe0\x71\xbb\x42\xec\x08\x12\xcd\xae\x25\x9a\x55\x5b\xb9\x10\x5d\xab\x77\x27\x11\x25\xf0\x20\x5b\xc9\xdb\xa2\x3e\x14\x27\x08\x29\x5d\xf6\x8a\xb4\xe5\x80\xe1\xea\xa7\x2c\xfb\xab\xc8\xc1\xdd\xa6\xf6\xb7\x6a\x55\xae\xea\x99\xe7\x82\x02\x0f\x54\xe2\x4b\x03\x36\xae\x06\x46\x6b\xc2\x20\x8d\x95\xbf\x77\x6d\x1c\x58\x90\x33\x3e\xe7\x29\x7a\xa1\x72\x82\x14\xef\x33\x88\x13\xcc\xbc\x01\x8a\x23\xf3\xe0\x09\x3c\x05\xd8\x16\x32\x1d\x4e\xa9\x42\xd8\x9b\x61\xc1\x24\x79\x62\xcf\xb3\x7e\x01\x66\x5c\x09\x5f\x50\x85\xbb\xb4\xe2\xd0\x6c\x60\x5f\xcb\x1b\xd9\x16\xa1\xc0\x8b\x69\xde\x2f\x46\x81\xa7\xf1\xf8\x1a\x66\xe5\x99\x0b\x20\x05\xa8\xda\xda\x60\x91\x60\x01\xae\x97\x4a\x55\xba\x5b\xac\xa1\x67\x05\x40\x41\xbe\x10\x8d\x10\x0a\xf2\xc7\x77\x01\x51\x50\x57\x7b\x6e\x59\xca\xaa\x7b\xa5\xc6\xfe\xed\x52\xa1\x15\x77\x81\xf3\xbe\xa4\x74\x5b\x2b\x29\xb5\x0d\xaa\x2e\x4f\x08\xd8\x3c\xbc\xbc\x2e\x7a\x19\xce\x78\xc4\x59\x4c\xd7\x88\x17\x86\xfa\x62\xc3\x74\xd4\x61\xf3\xd5\xc8\x47\x53\x3f\x50\xdf\xda\x4b\x3c\x49\xa4\x1a\x73\x73\xa5\xca\x9a\xb7\xef\xef\x74\x2f\x25\xb4\x08\x46\x44\xca\xb7\x13\xe3\x0a\xf2\x7e\x22\x95\xcc\x2b\x72\x51\xfb\xac\x5a\x4a\x5a\xce\xb7\xb7\x4d\x23\xd9\x29\xec\x9e\xc7\x23\xdc\x2c\xac\xd5\xed\x97\x2c\x10\xcf\x28\xf4\xc4\x82\x6c\x94\xc4\xe0\xdc\x0d\x59\x17\x40\xa5\x85\xa3\x4d\x72\xcd\x2b\x38\x47\xf5\xd0\x17\x92\x3c\x56\x9e\x5d\x2b\x18\xec\x50\xfd\x5c\xb8\x41\x1a\xe7\xc4\x64\x72\xbc\xbd\x31\x6c\x50\x77\x9c\xd9\x1a\x4a\xee\xe4\x4d\xca\x1b\x03\x9c\xed\xce\x40\x78\xcb\xc8\x14\xba\xf1\x13\x70\x41\xdb\xb1\x63\x13\x8e\x93\x41\xc3\x97\xd6\xa4\x30\x63\x13\x52\xb9\x97\x59\xaf\x5b\x93\xda\xf3\x89\x0a\x1b\x93\x4c\x7d\xeb\x06\x14\xa3\xb6\xa1\x9c\xa5\xdb\x22\x13\x40\x53\x16\x13\xc1\x08\x56\x93\xc3\x65\x82\x5c\x6c\x6b\x42\xf7\xc6\xb7\xdf\xac\x10\x3b\x52\x5c\x4c\x0e\xd9\x66\xb8\xc5\xe2\xfc\x2b\xc7\xa9\x1f\x6f\x62\xcd\xb2\x01\x12\x59\x79\xea\x05\xf5\xb6\xc2\xb4\xe9\xe1\x0f\xad\xb3\x4b\xb7\x4a\x16\xa9\x56\x39\xf7\x93\x36\x53\x61\x9b\x5a\x48\x98\xd1\xa7\xdd\x2f\xea\xbd\x82\x24\x6f\x22\x3f\x65\xff\x29\x13\xcb\xca\x87\xa7\x5e\x16\x05\xd4\x70\x57\x98\x32\xcb\xbd\x96\x25\x4e\x68\xb9\x77\x8a\xab\x72\x25\x5a\x9f\x85\xf3\xe6\x93\x70\x42\x4a\x46\x48\xc9\xa8\x58\xa3\x90\x92\x81\x50\xdb\x52\x32\x56\xa9\xa0\xcb\x8c\xb4\x99\xdf\x10\xca\xbc\x16\x6a\x2b\x99\xf5\x5d\xa1\x47\x6e\x9e\x76\xe0\xec\x9c\x7e\xcc\x96\xfd\xc6\x7e\x51\x19\xb6\xb5\xf0\x5a\x79\xb6\xbe\xcd\x95\xcd\xcb\xae\x0b\x2c\xe2\xc4\x42\x10\xda\xa0\xea\xa2\x8d\x6c\x99\x39\xb7\xcf\x7e\xe0\x2f\xe4\x99\x88\x13\x84\x15\x9a\x72\xc0\xb5\xca\x63\x78\xe0\x20\x14\xb0\xf4\x4d\xac\x06\x46\xd7\x78\x4a\x62\x53\x6a\xd3\x0b\xbd\xb4\x46\x65\xeb\x0e\xae\x42\xda\x05\xd0\x58\xb3\x0c\x2e\xb6\xa3\xcf\x4c\x38\xa4\x09\xc1\x03\x59\x81\xba\x89\xc1\x86\xf9\x63\xe6\xac\xfe\xe3\x19\x7a\xd0\xf7\x13\x95\xc5\xf1\x7a\xc0\x7b\x75\x63\xeb\xb3\xb1\xe0\xe9\x2c\xb3\xf3\xf1\xa1\xa9\xb9\x6c\x22\xb4\x16\x9d\xd5\x30\x18\xe7\xa9\x8e\x70\xac\x75\xf1\xe5\x1b\xe7\x55\x22\x65\x37\x82\x59\xf2\x37\x90\x3e\x86\x59\xf8\x9f\x0d\xc7\x37\x3e\x66\x0f\x5c\x66\x59\x05\x80\x3d\x39\xc0\x2f\x89\x04\xab\x50\xe6\x19\x28\xe4\xba\x17\xf1\x14\x2a\xc7\xb9\xcc\x6e\x9b\xf9\x56\x9c\xff\xa1\x1a\xaa\x21\xef\xdc\xc6\xa5\x99\x44\x5a\x7b\x4f\xec\xcd\xa2\xdb\x38\xc2\xb7\x8e\x5f\xdc\xa6\x62\xc6\x41\x12\x4b\xe6\x0e\x5a\xc2\x82\xfc\xcd\xf8\x2c\x35\xb1\x77\xd4\x0f\xc5\xaa\xdc\xd9\x54\xaa\xcf\x58\x45\x13\xcd\xb9\x73\x54\xb6\x1d\xc5\x24\xe6\x5c\x79\xbf\x56\xde\x8a\x19\x5c\xf8\xbd\xd7\xb8\x3d\x96\xed\x1e\x2f\xc6\x30\x0b\xe4\xcc\x24\x89\xa9\xee\xcf\xb8\x06\x6d\x25\x75\xcf\x2e\xea\x5e\xb1\xbf\xe8\x89\xae\xda\x45\xab\xc6\xdf\x6c\x6f\x15\x4b\xbd\xed\x3c\xda\x71\x0b\x98\x9b\x4b\x0b\x2a\x96\x3f\x68\x4b\x03\xd7\x84\x28\x08\xba\x59\xa6\x92\x2d\xcf\xf0\xac\xc5\x91\xcc\xe2\x3a\xc5\x33\xad\x44\x28\xae\x6f\x49\x31\x36\x72\xac\x89\xe5\x45\x18\xa5\x82\xba\xb3\x5f\xca\x5b\xaf\xdf\x1d\x60\xa1\xfc\xe0\x97\xf2\x8a\xb0\x57\xe5\xd0\x04\x25\xe0\x48\xa5\x38\x0b\x9e\x84\x3d\xe1\xaa\xef\x9b\x1c\x7d\xe7\xfc\x17\x4e\xbc\xab\x58\xd3\x95\x1b\x7b\x8b\x55\xc6\x55\x18\x8c\x8d\x4e\x1a\x65\x63\x0f\xc0\xb1\xda\x4a\xdc\xa4\xe8\x46\xe5\x9b\xcd\x0a\x87\x54\xbe\xea\x64\x9f\x4d\xde\x5d\x02\x30\xd5\x28\x64\xbd\x8d\x15\x13\xbc\x4c\x00\x1b\x2a\x6c\x65\x37\x1f\xd8\xd3\x76\x04\xb0\xc7\x14\x42\x19\xb0\x93\xe5\xbe\xf1\xcb\x26\xe8\xa1\x7d\xfb\x5f\xf9\x8f\xa0\xbf\xdb\xe2\x2c\x15\x0f\xf6\x19\x17\xf6\xd1\x93\xec\x39\xfd\x58\x8e\x4f\xac\xa5\xc4\xc5\x37\x73\xf4\x51\x51\xc4\x29\x04\xb4\x16\x8b\x33\x67\xe0\xa9\xb3\xb2\x16\x7a\xf0\x4f\xe9\x90\x08\x46\xf4\x9c\x1c\xae\x43\xc6\x83\xa7\x98\xe1\x31\x80\x61\x9f\x40\xd0\x21\x48\xd9\xb9\x06\x65\x4e\xa2\xa9\x0f\x0a\x4c\x56\xf3\x78\x9b\xca\x9c\xd7\xc9\x86\x3e\x8d\x04\x6e\xb1\x78\xf3\xc8\x95\xea\x43\x7b\x67\xfb\xdf\x4c\xd1\x78\xe8\xdc\xff\x38\xb8\xeb\xde\xdf\x3c\xde\x5d\x14\xb4\x8d\x8b\xab\xc7\xfb\x87\xee\x5d\xe5\x6f\x79\x1a\xf0\x4f\x8f\xdd\xc7\x9a\x9f\x5c\x03\x57\x9d\xef\xbb\x85\xa2\xf3\x3f\x3d\x76\xae\x7a\x0f\xbf\x0e\x6e\x3e\x0e\xee\xbb\x77\x3f\xf7\x2e\xba\x83\xfb\xdb\xee\x45\xef\x63\xef\xa2\xa3\xdf\xf4\x9f\xbd\xbd\x7a\xfc\xd4\xbb\x1e\xb8\x88\x6e\xff\xa7\x5f\x6e\xee\x7e\xfc\x78\x75\xf3\xcb\xc0\xeb\xf2\xe6\xfa\x63\xef\x53\xd5\x2c\x3a\xf7\xf7\xbd\x4f\xd7\x9f\xbb\xd7\xcb\x8b\xdb\x57\x53\xa3\xb6\x6e\xb6\x77\xff\x7a\xb6\x2e\x4f\xba\x1b\xce\xed\x99\xa0\xff\x04\x97\xcb\xad\xd9\xa2\xa7\x27\xee\x93\x29\x45\x7f\xaa\x39\xb7\x73\xe7\xe5\x4c\xaf\xcf\x32\x9f\x70\x26\x0b\x28\x3c\x96\x2e\xab\xbb\x30\xda\x73\xd4\x81\x43\x06\x7a\x4e\xa1\x53\x48\x1a\xc9\x46\xea\xa2\x08\x60\x1f\x26\x74\x4a\x21\xa0\x00\x9d\xa2\xf2\x82\x17\x1b\xb4\x73\x82\x21\x58\x77\x63\xbc\xec\x34\xc8\x72\xc2\x38\xec\x94\x73\xe4\x2e\x16\x62\xac\x20\x06\xd6\x77\xce\xf0\x94\x46\xe5\xec\x16\x40\xb6\x45\x39\x8a\x4b\xb9\xc5\xc2\x06\x2b\xb6\x3c\x21\xe8\xc7\xbf\xe7\x83\x02\xc7\x8b\x35\x18\xa4\x0b\x15\x28\xed\x0f\x22\x35\x54\x5d\xb5\x3d\x0b\x3d\xb9\x63\x6e\x2d\xe2\x70\x6e\x6d\xa5\x7b\xf0\x92\xa5\xcc\x43\x72\x2b\xb8\xcc\xf4\xf1\x36\x33\x2a\xed\xf1\x73\x74\x0f\x28\x32\x32\xb7\x38\xe8\x55\x9c\x25\xe9\x98\x32\x44\xa7\xb3\x04\x78\x8c\x31\x43\x0c\xc9\x04\x3f\x53\xee\x0a\xae\x98\xba\x34\x40\x47\x2b\x11\xa2\x53\x54\x7b\x50\xce\x51\x27\x8e\x65\x91\xc1\x15\x76\x8e\xe3\xa2\xa7\xc5\x61\xfb\xe0\x6b\x9a\xb1\x5a\xb6\x59\xda\x47\xf9\x91\x03\x8a\xed\x1e\x27\x67\x91\x1d\x16\x45\x86\x2d\xa4\x16\x4d\xc1\x81\xdb\xca\x83\x8d\x64\x98\x07\x2c\x9f\x1c\x6b\x5e\x25\xc7\x38\xc4\xa2\xed\x7a\xb4\xd0\x45\x4d\x3b\xcd\x28\x3b\x80\x83\xb6\x59\x9f\xb5\x80\xdb\x2b\xba\x74\x33\x4e\x4a\xa5\xee\x1a\xf7\x57\x28\x95\x57\xd9\xd9\x4e\x9d\x54\xd5\x42\x24\x1c\xc9\x41\xb6\xff\xd7\x98\xc7\x2d\xbc\x7a\x93\xbd\xb9\x54\xd2\x1c\x78\x74\x5b\xd7\x75\xb5\x90\xff\x6c\xdd\x57\x4b\xf7\xe1\x8e\x90\xb3\x9a\x4b\x91\x50\x2a\x84\x46\xe0\xa5\xc4\x94\xd9\x02\x52\x24\x73\xa3\xb9\x82\xed\xfa\x1c\x67\x25\x15\xf1\x90\x3f\x17\x74\xe2\x29\x91\x12\xd7\x60\xc1\x78\x96\xbc\x6d\x18\x43\x76\x42\xed\x8b\x0d\xf7\x93\x3b\x93\x0f\xfa\xad\x65\x32\xfa\x9d\xaf\xd0\xbb\x89\x6a\x19\x36\x76\x41\xcc\xe8\xc6\xa4\x32\x6a\xfe\x72\x92\xc7\x00\x71\xe1\x85\x46\xd5\x79\xad\x1a\x5a\x03\xcb\x04\xab\xac\x0b\xe6\x7b\x1e\xd7\x0f\x1d\xf2\x5a\xdf\x18\x6c\xdc\xba\x83\x70\x91\x3e\x6b\xec\xba\x82\x9b\xd6\xaf\xd8\x1e\xf1\xe9\xd4\xc8\x05\x05\x13\xf0\x09\xc2\x26\x83\x34\x97\xa6\x64\x1a\x4d\x8c\x73\x4c\x5f\x19\x27\x7d\xf6\xe2\x2d\x48\x21\xc6\xba\xe3\xb7\x04\x40\xad\x5f\xf4\x71\xa3\xcf\x85\xc8\x75\x10\x19\x29\x84\x51\x7b\x1b\xc1\xf8\x31\xf3\x82\x67\x2b\x36\xb8\xb7\x5e\x5b\x6c\xf5\x0d\x6a\x6b\x96\xe8\x5b\x57\x61\x33\x9b\x9b\x57\xd8\x72\x0b\x05\xbf\xe9\x10\xbc\xda\x9a\x55\x23\xd8\x41\x69\xcd\x83\x22\xa7\x67\x99\xb0\x26\x71\x7a\x3a\xb4\xf0\x1f\x7a\xba\x8e\xda\x7f\x72\x33\xfa\x93\x51\x84\xd3\x1a\xbc\x18\xaf\xb5\x0c\x3c\x1d\x9d\x6a\x99\xd5\xe1\x18\xd8\xf8\x11\x89\x4e\x0d\x20\xe3\x7b\x08\x62\xed\xdc\xf6\xde\x9f\xa0\xf7\x7e\x22\xdf\xfb\xa3\x31\x5d\xe4\xc7\xdf\x52\xcd\x16\xf7\x04\x5d\xae\x90\x4b\x52\x3c\xf4\xb0\x53\x4a\x7c\xc0\xee\x18\xcb\x06\x50\x1d\x17\xd0\x6f\x16\xde\x01\x8f\x3e\x94\x8b\x34\x4e\xef\x2c\x92\xdd\xfa\xcd\x8c\x84\x4d\x65\xc5\xca\xc5\x7d\x36\x9c\x97\x3d\x63\x27\x99\x6b\xac\x31\x8f\xd8\xba\x04\xa2\x6e\x6f\x31\xef\x7c\xc7\x11\xd6\xcb\x6f\xa3\x15\x99\xec\x9d\xac\x4e\x4f\xce\x43\xeb\x42\x3b\x42\x6a\x42\xd5\xac\x0a\x66\x3e\x47\xcc\xca\x45\x59\x25\x7d\x1d\xdb\x76\x6b\x10\xcf\xdf\xa9\xa2\x88\x4d\xe5\xa8\x11\xed\xc3\x2e\xdb\xef\x2e\xdb\x45\x2a\x4b\x71\x70\xeb\x5f\xdf\x17\x46\x8a\xf4\x9a\x71\xe6\x5e\xad\xca\x64\x0c\xbe\x50\x27\x73\x75\x79\xeb\x35\x1d\xe5\x1e\x4d\x56\x7b\xca\xef\x4d\xb4\x85\xf1\x55\x2f\x8e\xb5\x3c\xd4\x8e\xb2\xd5\xa5\x38\x35\x69\xab\x8a\x4e\xc9\x89\x29\x67\x96\x47\x88\xd8\xf3\x0a\xdb\xcd\x04\x76\x4d\x08\x15\xae\x13\x0b\x1e\xb9\x16\xce\xc1\x9a\xba\x40\xdd\x1e\xd9\x22\x3c\xe7\xba\xf3\xb9\x7b\x39\xe8\x5e\x3f\xf4\x1e\x7e\xad\x00\x06\x2d\xfe\xec\xb0\x41\xbd\x07\xee\x7f\xbd\x7f\xe8\x7e\x1e\x7c\xea\x5e\x77\xef\x3a\x0f\x2b\x70\x43\x97\x75\x56\x87\x49\x99\xca\x2a\xe5\x71\x1d\x5c\x4a\x67\x64\xae\xe8\x7d\x11\x3d\xd4\xeb\x84\x92\x1a\x04\x51\x83\xe9\xc0\x62\x22\x50\x4c\x9e\x49\xc2\x67\xb9\x51\xb7\x92\x60\x1e\xb4\x68\x45\xfb\xcb\xe0\x45\xa1\xcd\x32\x8d\xcf\x91\xa9\x8d\xe8\x95\x87\xce\x1a\x04\x91\x0f\x0b\xc2\xde\x2b\x44\xbe\xcc\x12\x1a\x51\xe5\xe5\x7c\x72\x61\x9d\x3b\xc6\xe7\x0a\x21\xbd\x2b\x36\xd7\xce\x42\x78\x76\x6e\x71\xf0\xc3\x0f\x16\x6d\x0d\xd9\x89\xca\xa0\xee\x56\x56\x86\xda\x81\x59\xa1\xc6\xd3\xbe\x80\xc4\xb7\xc1\xe8\xf6\x61\x9c\x58\x4c\x6c\xb2\x79\x9b\x35\x28\x7d\xd5\x83\x5c\x7d\x1b\x2e\x0b\x2e\x2a\x9c\xeb\xe5\xd1\x45\xcd\x76\xea\x2b\xc7\x08\x15\x0a\xd1\xee\x00\x52\xc5\x06\xfc\xaf\x19\xe5\xb1\x50\x08\x88\x99\x40\x5d\x8c\x04\x99\x72\xa5\x15\x30\x13\x46\x71\xa2\x85\x2a\x8a\x13\xfa\x4f\x00\x1f\x13\xe4\xcc\x0b\x3b\x71\x90\x6d\xb9\xf3\xc2\x02\x83\x9c\xf5\xd9\x65\xf7\xf6\xae\x7b\xa1\x19\xd2\x19\x7a\x94\x80\x2b\x56\x98\xfa\xa5\xdd\xde\x46\x1c\xf3\xc3\x3f\x28\x93\x8a\xe0\xba\x08\x3a\x22\x04\x17\xcd\xf9\x43\xd6\x5f\x17\xde\xab\xde\xde\xf0\x5b\xc1\x32\xe6\xcc\x0f\xd7\xb5\x55\xc4\xbd\x44\x8b\x9d\x27\xb2\xdd\xe1\x97\x02\x45\x7c\x5c\x15\x90\x44\x8a\x54\xdf\x23\xb5\x01\x99\xb5\xf9\xfc\x0a\x7d\xde\xc2\xbb\xcb\xe6\xf9\x00\x71\x89\x52\xe5\x30\xaf\x06\x09\x36\x2b\x67\x54\x9a\x67\xad\xa8\x28\x5e\x03\x83\xa5\xb4\xf5\x87\x64\x8c\x19\x12\x29\x63\x25\xdc\x5f\xdf\xce\xb7\x18\x69\xb4\xee\x51\xd5\x34\xc3\x53\x9e\x32\x53\x8f\x57\x8f\xaa\x62\x30\x72\x46\x98\x5a\x31\x98\xd7\x42\xd8\x29\x0d\xb5\xbd\x20\x3b\x15\x03\xad\xc3\xd9\xa9\xf2\x66\x41\xa9\xf2\xf5\xae\x65\x17\xc9\x58\x70\x69\xe9\x43\x95\xdd\xcf\xd5\x5a\x36\x96\x4f\x5b\x77\xf7\x80\xe5\xd3\xea\xae\x62\x12\x3d\xad\x7b\xd9\x94\xd3\x59\x13\x5b\xe9\x7d\xc1\xd8\x37\xd7\xbf\xda\x9a\x3b\x50\xe0\x3f\x7a\x42\x3f\x3c\x7c\xbe\x42\x23\xaa\xe5\x5e\x7d\xad\x5c\x63\x2d\x63\x3f\x8a\xc4\x59\xa5\xad\x65\x37\x15\x49\x76\xf7\xc2\xc2\x3b\x51\xca\x93\x12\xf4\x8d\x86\xc7\xc4\x99\x9a\x85\x85\x51\x2c\xd5\xdc\x11\x98\xc5\x7c\x6a\xe6\xf1\x41\xa6\xa3\x11\xfd\x72\xa6\xb0\xf8\xb6\x86\x1e\x26\xa6\x63\xf0\x0f\x3e\x1c\xe8\x11\x6d\x79\x11\x57\x35\x87\x6c\x01\xf2\x8c\x6c\x76\x66\x97\xe6\xd9\xff\xc3\x87\x00\x11\x00\x28\x07\xce\x37\x68\xe3\x24\xec\x23\x6e\x27\xe5\x15\xb9\x0b\xe8\x35\x11\x17\x82\x58\x64\x01\x53\x34\x76\x86\x85\xa2\x60\xad\x75\xe8\x37\x85\xb2\x07\xf9\x12\xf9\x25\xf2\x27\x38\x87\x18\x1f\x12\x02\xee\xa5\x19\x4d\xd6\x53\x7a\x2f\x0a\x9e\xd1\xd2\x09\xb4\xe1\xba\x16\x10\x15\x0c\x32\x2b\x45\xac\xee\x33\x61\x6a\x27\xfa\x09\x34\x51\x81\x75\xd0\xcc\xc7\x61\x6a\xb7\xf6\x2e\xf3\xcb\xcd\xc5\x41\xfb\x31\x55\x4a\x60\xb8\xe7\x6d\x76\x99\x75\xe8\xd7\x85\x19\x3c\x37\xf6\x5c\xc3\xa3\x8b\x74\x59\x91\x4f\x60\xa9\x9d\x97\xc6\xcf\x63\x81\x5d\xcd\x86\x0d\x11\x9a\x24\x31\x56\x0c\x0f\x19\xc4\x2a\xa7\xe5\x35\x37\x7d\xea\xbd\x55\xea\x72\xe5\x92\x6f\x00\x47\x54\x68\xe6\x13\x81\x3c\xd8\x5d\x44\xef\xaf\x03\x78\x00\x03\x79\x14\x09\xc4\x9d\x2f\xb5\x62\x99\xfa\xf1\x9a\xf3\x65\x92\x1d\x6e\x20\xa3\x9b\xc1\x68\xa1\x91\xcc\x04\x89\xf4\x55\x76\x8e\x6e\x13\xa2\x25\xaf\x54\x4b\x5f\x69\x92\x38\xe8\xb6\xe5\xd2\xe1\x5a\x70\x83\x7b\x9f\x97\xa7\x7b\x2c\x99\x98\x83\x2e\x5c\x3e\x33\x8f\x06\xbb\x87\xa9\xf0\xe8\x0b\x26\x64\x30\x24\x16\xb5\x48\xe0\xf0\x73\x13\xb5\x0b\xa6\x24\x5c\xb8\xc8\xe8\x3f\x35\xfb\x15\x44\x4e\x78\x6d\x66\xa8\x3f\xdb\xfd\xcc\xc1\x91\x72\x8f\x93\x70\xf7\x61\x5d\x30\x7a\x03\xb9\xa6\x74\x07\x16\x44\x9c\x26\xbe\xd8\x3c\xf6\xc4\x02\xe9\xda\xbb\xd5\x0e\x0d\x6e\xc9\xdc\xd4\xe6\x83\xda\xe5\xae\x8b\x5c\x99\x99\x1b\xdf\x6b\xf6\x7a\x6e\x40\xce\xf3\x28\xa8\x92\x79\x39\x41\xa4\xef\xda\xba\x25\xd6\xf3\x1c\xa4\x62\x2d\x1c\x8f\x1c\x8e\x7e\x1d\xce\x6d\x33\x78\xf2\x61\x69\x22\x54\xb3\x4b\x5b\x25\x04\xc4\x68\x1b\xe8\x24\x0b\x10\x7f\x76\xdb\x18\x32\x56\xaa\x78\xf5\x4c\x79\x5b\xb7\x1a\x48\xc9\xb9\x28\xb3\x2f\xef\x5a\x61\x07\x16\x26\x10\x40\xe3\xd6\x07\x8d\xb3\x25\x63\xb2\xbd\x07\x10\x8f\x4a\x00\x5a\x42\xee\x40\x2b\x0b\x0e\xd6\xe8\xbd\x2a\x5d\xac\xb0\x3a\x8d\x72\xc3\x0a\x6f\x68\x5e\x72\xb9\xa5\x07\x4e\x4f\x66\x3e\x80\x6c\xdb\x6d\x62\x80\x0a\xf3\x37\xde\x03\x68\x93\xc4\xc8\x40\x3e\x18\x48\x6b\x4b\xbb\xcc\x73\x32\xc3\x82\x30\xd5\x67\x77\x7a\x14\xe6\x8d\x3c\x12\xc3\x45\x01\xb9\x32\x03\x50\x8c\x78\x84\xb0\x7d\x0b\x88\x5e\x17\x86\x27\x07\xe6\x21\x50\x4d\xf7\x88\x4c\xf0\xbd\x79\xc6\x00\x45\x58\xa0\x24\x3d\x55\x3a\xca\xd5\x78\x2d\x40\x46\x13\x0a\x38\x0d\x31\x91\xf6\x42\xa2\xca\x02\x71\x64\xe2\x77\x4a\x1c\xb0\x36\xbc\x96\xf1\xaf\x2a\x86\xed\x0c\x05\xcc\x19\xe8\x64\x9f\x79\x7d\x2c\xc1\x61\x35\xca\xfa\x86\xaa\x04\xac\x33\x8d\x33\xc7\x17\xfc\x69\x56\x88\x0b\x3a\xa6\xcc\xab\x86\x65\xa7\x37\xc5\x33\x30\xef\x9a\x33\xc8\x47\xd9\x9d\xf6\x60\x73\x1c\xce\x60\xc4\xff\xf7\xbf\xff\xe7\x8c\xd6\x79\x3f\xe4\xc0\x52\xa0\x0d\x2b\xb9\xde\xb2\xf8\x2b\xef\x41\xaf\xd4\x40\x7a\x78\x3a\xad\x2c\xe4\x6d\xe4\xdf\xda\xcb\x4d\x6f\x1a\xae\x26\xc6\xdd\x5b\xdc\xee\xe0\x1b\x11\xe9\x92\xb3\x61\xae\x98\xd7\xa5\x25\x95\x90\x9b\xa0\x47\x62\x4e\x72\x66\x20\xf0\x2b\xcd\x2f\x98\x69\xfa\x2c\x7f\x45\x1a\x10\x19\x83\xdb\x6b\xbe\xc8\xa9\xd3\x90\x30\xcb\x78\x7f\x1e\x29\x91\xbb\xc3\xbd\x58\x68\x57\x17\xc5\xc4\xb0\xea\xf6\x4b\x37\x6d\x89\x73\x7b\x00\x96\xdb\xc4\x8c\x4e\xb0\xdc\x5f\x68\x4e\x65\x3d\x2f\x63\x4d\xf7\x85\x87\x55\x41\x3a\x66\x90\x26\x45\x56\x2f\x48\x2a\x89\x30\x9c\x2e\xc3\x10\xb3\x3b\xc1\x87\xe7\x84\x08\xd1\x15\xbe\x46\x32\xc5\x74\xad\x6c\x06\xfd\x7c\x35\x78\x68\xc1\xd9\x80\xc7\x44\x0c\xe2\x54\x2d\x1c\x8b\x65\x19\x06\xfa\xa5\xcb\x54\xcd\x57\xb7\x2f\x13\xbc\x58\xcf\x68\x19\x60\xab\x7e\xbe\xa6\xd9\xd5\x12\xb3\x17\xe2\x53\x94\x9a\x6b\xe0\x50\x49\x09\x0e\xd5\x46\xbc\x16\x4c\x24\x70\x03\x33\x05\x38\x84\xb9\x26\x65\xaf\x68\x03\xda\x0e\x23\x47\xc3\x34\x37\x29\x65\x65\x30\xe2\xb3\x3e\xfb\x68\xea\xc8\x80\x96\x67\x06\x10\x41\xba\x11\xf9\x32\xe3\x92\x14\xf2\xdf\x2a\x4a\x5b\xd8\xc4\x57\x3b\x8c\x6a\x61\x3d\x7f\x69\x7b\x59\xfd\xd5\x81\x6d\x17\x17\x7c\x71\xca\xd5\x3b\x70\x2b\x71\x30\xa2\x33\xaa\xf7\xce\xa0\xf2\xa4\xed\xaf\xbc\x72\x1e\xd3\x05\xe0\x61\x2a\x99\x9f\xa0\x6c\x7a\xa5\x0d\x91\x90\x67\x02\xe6\x74\x18\xa3\x5f\xc0\xa4\x68\xd7\xab\x61\x27\xab\x0e\x50\x9e\x7c\x0a\x6c\x01\xc5\xe5\x11\x14\x53\xf4\xaa\xf6\x62\x31\xf9\x68\xeb\x3c\xb9\xaa\xc0\x94\x35\xc4\xf3\x8e\x5f\xc8\x65\x4e\x14\x22\x5f\x14\xb1\xa5\x5e\x1f\x5c\x26\xe3\x62\xf2\x03\xaa\x4e\xc6\xaa\x97\x1d\xf7\x5e\x74\xbb\xe3\x12\xdf\x5d\xaa\x66\xec\xae\x7c\x9b\xba\x38\xc1\x2c\xb6\xf9\xb8\x56\xc9\xd0\xc2\x16\xcc\xce\x18\xdd\xb2\x4c\x05\x9b\x55\xea\x21\xe0\x9b\x36\x0d\x54\x3f\x5c\x64\x4e\x61\xd4\x2a\x0b\x84\x57\x70\xa1\x25\xf7\x94\x29\x9a\xe8\xcd\x61\xc7\x20\xd1\x08\x22\xe3\x2c\xba\x23\x44\xb6\xd7\x01\x08\x52\x29\x29\x1b\x0f\x2c\x25\x5d\x6a\x69\xb3\x8b\xa1\xb8\xa7\x3e\x9b\xa6\xcc\x97\xdf\xbb\x86\x96\x1b\xd5\xcd\xb6\x06\x70\x37\x97\xd4\x0a\x1a\x07\xe3\x6e\x32\x16\x95\xcf\xe5\xc2\x0e\x68\x6c\x48\x41\x4d\x45\x71\x98\xe8\x3a\x76\x77\x90\xe9\x16\xc1\x2f\xf2\x2b\x44\xda\x44\x55\x93\x7e\x06\x91\xfa\xaa\x26\x13\x57\xd6\x66\xe0\xf6\x58\x26\xa2\xd9\x7a\x66\x19\xce\x40\x29\x99\x17\xbb\xee\x6c\x3a\x02\x4e\x92\x21\x8e\x9e\x32\x2d\x2c\xb3\x45\x70\xe1\xea\x41\x68\xb9\x12\x0a\xde\x99\xcd\xa5\x07\x1a\x81\x74\xe3\x7b\x0b\x0d\xfc\x91\x1d\x76\xde\xb9\xa1\x9a\xc5\x95\x33\x78\x57\x66\xf4\x26\xb7\x21\x26\xb3\x84\xcf\xa7\x35\xf7\x59\x39\x81\x71\x9b\x48\x9d\xba\xfc\xc9\x9d\x5e\x65\x25\xa6\xb7\xf6\x65\xb6\x90\x0d\xb5\x03\x30\xae\x35\xb8\xe4\xa7\x84\x0f\xc1\xa4\x6a\xcd\x0f\x2e\xc3\xc7\x4b\xf5\x28\x9f\xe7\x75\xf3\x8e\xca\x27\x92\xca\x59\xa2\x95\x99\xfa\x1e\x4c\xce\xc9\x7e\xd7\xcd\x20\x24\xac\xb6\x0e\x36\x8f\xd6\xae\x7c\x7d\x1f\xb0\xcf\x57\x4e\x12\x30\xcf\x1a\xfe\x55\xb2\xb2\x99\x54\xc3\x33\xe3\xa4\x56\xbc\xcf\x14\x1e\xbb\xc5\xb5\xc2\x25\x7f\x61\x44\xc8\x09\x9d\x15\x0a\x61\x6e\x1d\x1e\x6e\x77\xb4\xfd\x8f\x09\x86\xae\x6c\xb3\x85\xa9\x5b\x0f\x7c\x76\x6a\xd0\x59\xf4\xee\x94\x33\x1c\xe5\x36\xd9\x28\xc1\x52\xd2\xd1\xdc\x03\x55\xc9\xe2\x7c\x21\x75\xad\x68\xc4\xf0\x2a\xdf\x55\xb1\x39\x43\x9d\xdd\xa0\x0a\x6c\x9f\x51\xf9\x58\x3c\xfc\x34\xf6\x41\xf7\xf4\x6d\xb6\x08\xbd\xe3\xe4\x04\x4b\xf5\x5a\xf0\x60\x03\x9f\xb0\x19\x0a\x40\x53\xbc\xa6\x3d\xef\xa4\x8a\x34\xcc\x85\x8d\x94\xa3\x85\x65\x72\xb4\xa5\x99\xd5\xe1\x32\xa4\x15\x1f\xbe\x48\x15\x72\x58\x61\xe7\x69\x9d\xd1\x99\xc4\xf5\xb9\xcc\x50\x5a\x00\xcc\x22\x7f\xf9\x04\xc9\xad\x40\xd9\x9a\x6c\xca\x4b\x92\x90\x9d\x04\x9b\x6f\xb0\x43\xcb\x91\x1c\xde\xde\x5c\xba\x2f\xf3\xb2\x14\xab\xed\x2a\x1b\xc4\xc0\xd7\x60\x24\x55\x0f\xfd\x17\x33\x50\x1b\x06\x5f\xb5\x8a\x60\x13\x05\x2a\xaf\x1e\x6d\x9b\x76\xb9\x17\x5a\x62\x86\x6f\xf7\x7b\x3e\xc7\xc2\xa6\xce\x67\x9c\xc9\x89\x6d\xdc\xe7\xaf\x1c\xaa\xbe\x30\xae\x4f\xa4\x49\x58\xcd\xca\xd3\xb7\x11\xef\x5d\xbc\xa1\x9a\xed\x0b\xeb\xb8\x56\x1c\x8d\x09\x20\xf1\x50\x16\xd3\x67\x1a\xa7\x38\x39\xaa\x3d\xb1\xb3\x44\x9b\x1d\x51\xbf\x9a\xc3\x34\xb2\xf4\xe4\xf1\xa0\x44\x49\x77\x1f\x2d\x60\x7e\xda\xc5\x69\xe1\x12\xb4\xe3\x58\x1a\x85\xe1\xcd\x4b\x6c\x5b\x43\x63\xd8\x91\x59\x80\x88\x20\x4a\x16\x2e\xd9\x7c\xec\xbb\x97\x26\x0d\x8d\x63\xfb\x46\x06\x07\x51\x80\x61\xc3\x05\x34\x4b\xb3\x46\xaf\xcf\x75\xcb\x47\xeb\xad\xcb\x9d\xeb\x9f\xb1\xf2\xa8\xf2\xd3\x15\x84\xe1\x36\x9c\xd3\xe6\xf2\xb0\x03\xa0\x6d\xa1\xf0\x53\x77\x0c\xdb\x79\xff\xb6\x40\x38\x5e\x10\x09\x76\x27\x22\x1f\xd1\x36\x69\x85\xa4\xbc\xb0\x14\x87\x92\x97\x4f\x1d\xb6\x57\x8e\x94\xd5\xde\x25\x6a\xc7\x49\xbe\xb3\xee\xc7\xfd\x5d\xf0\xab\xf7\xcb\x4e\xf6\x07\xc0\xdc\x62\xc8\xc7\x4f\x6d\xb9\x1f\x38\xbc\x5e\x0c\xe7\x82\xcf\x6b\x45\x74\xac\x1d\x5e\xa3\xb8\xd8\x05\x72\xee\x63\x79\x6d\xf2\x65\xe3\xc5\xdd\xe7\x56\x5b\x77\x2c\xbb\xd0\xd1\xf6\xec\x3d\xb4\xbb\xd1\x7b\x21\x04\xa9\x37\xbb\x45\x2b\x20\x9d\xdc\x92\xed\xf2\x90\x55\xd5\x68\xdc\x1e\x3e\xc2\xe5\x96\x0e\x66\x82\x8c\xe8\x97\x8d\x54\x81\x5b\x78\xd5\xaa\xd7\x9a\xcc\xa5\xaa\x8f\xe0\x16\x84\x2a\x91\x5e\x20\xad\xa5\xb4\xad\x0c\xd7\x67\x79\x46\xae\x4d\xc7\xd5\xc2\x30\x17\x85\xaf\x36\x85\x3e\xdd\x7d\x85\x4a\xb3\xae\x13\xa5\x66\xf2\xfc\xc3\x87\x31\x55\x93\x74\x78\x16\xf1\xa9\xc9\xff\xe0\x62\x6c\x3e\x7c\xa0\x52\xa6\x44\x7e\xf8\xcb\x9f\xff\x9c\x2f\xf1\x10\x47\x4f\x63\x03\xe7\xb4\xe8\xef\x2c\x2e\x39\xc1\x72\xbb\x88\x32\x97\x3a\xb9\xe7\x14\x7a\xaf\x1b\x97\xb4\xac\xdf\x91\x0a\x4f\x67\x7e\x08\xb2\xa9\xf1\x28\x15\xce\x2b\xcb\x40\x3e\xac\x9e\x26\x9a\xe0\xd9\x8c\xb0\x7a\xb3\x8b\x49\x70\xde\x82\xf5\xb8\x14\x69\x3b\x42\xf2\x65\x96\x60\x56\x84\xfd\x80\x32\x69\x82\x44\x84\x29\x0b\x49\x91\xd7\xa6\x87\xdd\x68\xa0\xa7\x0c\xff\x5f\x2f\x05\x16\xe6\x48\x65\x5e\xff\xd0\x0d\xc7\xd6\x22\x76\x15\x6a\xb1\x47\xba\x72\xfd\xe7\x9c\x76\xc4\x51\x6d\x59\x72\xec\xbd\xad\xf5\xb6\xcd\x0e\x8a\x04\x67\x03\xf2\x45\x33\x39\xb9\x29\x50\xdc\xa3\x24\x12\x75\x7e\xb9\x47\x72\xce\x14\xfe\x72\x8e\x3e\x53\x06\x02\xec\x0f\x3c\x15\x12\x5d\xe2\xf9\x29\x1f\x9d\x4e\x39\x53\x13\xf4\x19\xfe\xdf\x7e\xf5\x42\xc8\x13\xfa\x95\x60\x61\xf9\x83\xad\x1f\xe9\x4a\xd8\xc1\x16\x12\x29\x93\x88\x3c\xeb\x13\xfa\xe7\xff\x85\xa6\xa6\xe5\x73\xf4\xdd\x87\x3f\xff\x2f\xf4\x47\xf8\xdf\xff\x83\xfe\x58\x63\x69\x58\x0f\x6a\x0e\xca\x8c\xdf\xd5\x86\x11\x00\xa5\xe4\x22\xc9\x57\x35\x7b\x21\x78\xbe\x52\x95\x2d\x3f\xd1\xe8\x89\x8f\x46\x03\xbd\x31\x4c\x02\xe9\x00\x6f\x65\x76\xf0\x51\x83\xa9\x2d\x14\x6f\xca\x4e\xe6\x05\x9f\x6c\xa7\x06\x69\xc4\xb1\x6b\x99\xe6\xe6\x09\x08\x5e\x2b\x94\x1e\xa7\x12\xde\x22\xb1\xe6\xaa\xeb\x9c\x0e\x67\x5d\x74\xa0\x03\xce\x82\xe4\x23\xf3\x38\x81\xb8\x10\x70\xea\x47\x4f\x9b\x00\x33\x4b\xc8\xca\xe3\xb0\x10\xd6\xfd\x66\x62\x75\x61\x6a\xaf\x15\xa7\x2b\x17\x3a\x5f\x1d\xa2\x7b\xcf\xc5\x56\xfa\xd6\x13\xa9\x4d\xa1\x59\x51\xdc\xcc\x15\xdc\xc6\xbe\x51\x43\x71\x24\xb9\xc8\xd0\xbb\x8d\x5d\xc4\x96\x40\x5d\x6d\x45\xa5\xc2\x04\x35\x36\x3b\xf4\x7a\xea\x97\xd9\x2b\xab\x86\x09\x11\x8e\xee\xe9\xbc\xb8\x23\x8c\x56\x8b\x48\x9a\x25\x56\x8c\xb8\x02\x64\x73\xd5\x82\xde\x67\xb8\x2a\xd0\x38\x84\xdb\x42\xde\x10\x73\x92\xad\x05\xae\xa8\x5e\xcf\x54\x44\xe4\x82\x6f\x17\x6e\x9d\x50\xb6\x90\xa7\x51\x1b\xdc\x56\x2f\x93\x5f\xd9\x0a\x71\x0e\x87\x9a\xc7\xb9\xb2\x60\xdc\x12\xb6\xf6\x8a\x07\x80\x5b\x9c\x0d\x00\x29\xee\x02\x63\x75\xa1\x22\xc8\x16\x5c\xdb\x18\xae\x73\x86\xe7\x0a\xca\x94\xea\xc8\x08\xac\x79\xe1\x92\x98\x49\x08\x27\xdb\x7a\x1c\x5e\x6d\xa4\x3c\x46\xad\x50\xa5\x18\x46\x02\xf9\x96\x1b\x62\xe4\x9a\x32\x65\x27\x48\x60\x08\x06\x56\x13\xdd\x9e\x24\xe2\x74\x84\x23\xca\xc6\x27\x1e\x3c\x2a\x40\x95\xf8\xd7\x41\xd5\x26\x7d\xc0\xf2\x69\xb7\x01\xae\x5b\x57\x9b\xa5\x71\x5e\xf1\xd0\x02\x1a\x19\xc7\x0a\x5d\xc0\x86\x54\x58\x3e\xd5\x21\x7a\x2d\xc0\x09\x2e\x19\x5d\x46\x0a\x07\x42\xb8\x6c\x7c\x0e\xfa\x80\xf8\xfa\x14\x54\x2a\x71\xf5\xcf\x2d\xb8\xa8\xcb\x34\xc5\x19\xfa\x4f\x19\x55\x77\xc9\xf8\xe5\x84\x0b\x35\xd8\x10\x8f\xb8\xec\x52\x61\xe4\x34\x01\x20\x21\xfe\x4c\xc4\x33\x25\x2f\x45\x58\xdf\x75\xf6\xa2\x31\x9a\x79\xf1\x94\x80\xfb\x3a\x9d\x71\x48\xdd\x1a\xa1\x29\x66\x73\xc3\x28\x35\x73\xc1\xf2\x49\x66\x55\x97\x91\x9c\xe2\x24\x39\x41\x82\xa4\xd2\x54\x23\x97\x24\x19\x9d\xba\x02\x30\x31\x4a\xf8\x98\x46\x38\x41\xc3\x84\x47\x4f\xd2\x64\x56\xb2\xb1\x61\x52\x33\xc1\x23\x22\xa5\x27\x59\xe5\x28\x0a\x36\xb7\x15\x4a\x2e\x2b\x22\xa6\x94\x51\xa9\x68\xe4\x44\xa6\x1c\x0c\xc5\x14\xfe\x8f\x30\x98\x84\x21\x53\x18\x86\xab\x25\x3d\x62\x40\x61\x53\x66\x4b\x85\xc1\x75\x6d\xb1\x1e\x5d\x72\x42\xdd\x01\xda\x01\x74\xa5\xdb\x21\x03\x55\x3c\x90\x2b\x8e\xd4\x85\x7d\x0d\x8e\xf1\xb2\x2d\x70\x57\x3c\x51\xd9\x86\xcc\x4e\x5a\x01\x4e\x0b\x72\x19\xb2\xd4\x8b\x82\xe4\x92\x65\x24\xb4\x0c\x49\x0f\x86\x5c\x83\x9f\xb7\x6a\x4f\x6b\x2a\x82\xc8\x03\xd5\xe9\xca\x5e\x7b\xca\xa2\x24\x8d\xb3\xb2\xaa\x5a\x04\x78\xd6\x9b\xc4\x91\x47\xd3\x5e\x0b\x0a\x27\x08\x4b\xf4\x42\x92\x44\xff\xd7\x64\x5e\x9c\x66\xe5\x42\x34\x4b\x36\x25\x5d\xa0\x13\xc7\xa5\xeb\x76\x54\xeb\x50\x51\x6f\xb1\x9a\x18\xac\x89\x29\x57\xa6\xa2\xad\x41\x45\x75\xf6\x2d\x03\xa3\x39\x4c\xf8\x10\x4e\x3a\x00\xa6\xba\xfc\x6a\x2f\x9d\x33\x8d\x22\x42\x62\x12\x9b\xfa\x9c\x19\x98\xa7\x3d\xa2\xdf\x56\xc3\x77\x16\x28\xd2\x02\xb0\xd4\xb2\x61\xad\x16\x32\xb5\x58\xdd\xf0\x0c\xdd\x96\x00\x81\x3c\xca\x8c\x70\x19\x1e\xee\x64\x61\x09\x5f\x07\x60\xb5\x34\x89\xfd\xad\xd0\x9a\x00\xab\x85\x3e\x77\x00\xb0\x5a\x9a\x67\x4d\xce\x08\x1f\xef\x35\xd7\x5d\x4f\xea\x8a\x37\x4f\x40\x34\xc0\x74\xe6\xee\x2c\x6c\x41\x77\x20\xe7\x55\x1b\xb1\x5d\xe0\xb1\xa5\x1a\xa0\xaf\x0b\x1e\x5b\x1a\x4c\x9b\xc1\x63\x4b\x43\x6d\x2f\x78\x6c\xc5\x40\x1b\x80\xc7\x1a\xe7\xfe\x40\x6f\xea\x66\x4c\x01\x12\xaa\x86\xe9\xe8\x1e\x20\x06\x96\x8e\xf1\xc2\x04\x0e\x98\x6b\xcc\xdd\xd1\x36\xbe\x08\x46\x6b\x73\x6f\xeb\xc2\xb1\x4a\x4e\x88\x75\xf7\x5e\xe6\x7d\x33\xa0\x23\xeb\x9a\xdd\x4f\x7c\x6b\x37\xd8\x21\x23\x3c\xb3\x58\x06\x75\x25\x8e\xda\x93\xb5\xbd\x19\x2e\x2f\x60\x5f\x16\x58\x7e\x23\xe4\xba\xcf\xa5\x6a\x21\x13\xfe\x62\x2b\x76\xc1\x36\x34\x9b\xb2\x76\x0b\x42\xa7\x03\xab\xb4\xd5\x51\x8e\x32\x45\xc6\x65\x9d\x36\x3f\x34\x94\xa9\xbf\xfe\x65\x25\x27\x32\xd0\x9e\x4e\x3d\xf4\x6a\x76\x64\xce\x0e\xfb\x1b\x89\x51\x34\xd1\x5a\x91\xd4\xea\x8b\x9e\x8e\xb9\x59\x25\x9a\x62\xea\x14\xa9\x54\x1a\xd7\x12\x95\x7d\x56\xc0\xc2\x3d\x43\x1f\xa1\x0c\x32\x9e\xce\xb4\xfe\x95\xcd\x8f\xea\x9d\xd4\x4f\xbf\xfb\xee\xaf\x04\x7d\x87\xa6\x04\xb3\x82\x0e\x0b\x6a\x93\xbe\xfa\x00\x3b\x52\x4d\x48\x9f\x55\x2e\x05\xea\x7e\x31\xb5\xcd\x5c\xbc\x61\x8f\x8d\xb8\xd3\x89\xa1\xbc\x27\x8e\x26\x48\xa6\x43\x53\x9f\xda\xb3\x61\x38\x41\xfa\x8a\x8f\xc1\x51\x0d\x37\xb2\x1b\xf4\xb2\x53\xb8\xdf\x18\x00\xeb\x6e\x6c\x7a\x1b\x77\xe0\x1e\x39\x95\xa4\x80\x29\x56\xe1\x34\x33\x9c\xcf\x3f\xf8\xd2\xe0\x0d\x9d\x18\x1f\x82\xd6\xcf\xb0\xb5\xec\x6b\x59\x1a\xc2\x89\xc1\x4b\x96\x26\x58\xd8\xa3\xdf\x67\x5a\xd1\x10\xe4\x99\xf2\x54\x26\x73\x14\x73\x46\x4e\x60\x27\xa4\xd1\xc4\x38\x56\xb5\xce\x82\x6d\xa1\x94\x67\x2a\x53\xad\xd0\x42\x5b\xae\x2e\x8b\x54\xd8\x60\xa1\x4d\x28\xf4\xa3\xd5\x6f\x02\x6f\x29\x2f\x3f\x12\x35\xd3\xa2\x7c\xb8\xe2\x12\xcf\x6f\x08\x57\x5c\xd8\x55\x01\xae\x38\x83\x2b\x5e\xa4\x4b\x1b\xe1\x8a\x4b\x6b\xde\x0c\xae\xb8\x6a\xc9\x37\x80\x2b\x2e\x34\xf3\x66\xe0\x8a\x4b\x14\x7d\x33\x70\xc5\xa5\x79\x05\xb8\xe2\xb7\x07\x57\xbc\x25\x20\x6f\x35\x2f\x36\xb8\x5e\x8a\xb2\xf9\xda\x9b\xec\xbd\x44\xbd\x1b\xbd\xc1\xa2\xa7\x62\x50\x5b\x76\x5d\x6d\x0f\x02\x5c\xcd\x84\xd6\x03\x01\xae\x54\xd5\xeb\x59\xdd\xb6\xc0\x62\xa0\x18\x1c\x18\x04\xb8\x30\x81\x10\x5f\xb9\x7e\x7c\x65\xe5\xe6\xb3\x7d\xeb\xe1\xb9\xa0\xcb\xf2\x85\xdc\x10\x06\xb8\xb0\x3e\x8d\x22\x31\x41\x74\xdf\xc1\x4e\xdc\xaf\x34\xff\x50\x38\xe4\x2b\x65\x79\x9f\x8a\xd2\x02\x92\x6b\x09\xcf\xa1\x14\x1a\x25\xdc\xf7\xff\x87\x9d\xbb\x41\x64\x70\x89\xbc\x99\x5f\xc5\xec\xc5\x06\x5b\xb5\xf1\x0e\x75\x5a\xe9\x6e\x12\x85\x5d\xf2\xe6\x9a\x2e\x66\x37\x88\xfb\x19\x89\x6a\x6c\xcc\x74\x4a\x77\xd5\xec\xaa\x8b\x2c\xc3\x60\x03\x85\x7c\x21\x2f\x55\x5f\x4f\x66\x38\x46\xc6\x2f\xa5\x03\x03\x4a\x8a\x79\x73\x4c\xa5\x12\xb5\xb1\x4d\x0b\x23\xdc\xc6\x55\x3a\x4b\x1b\x07\xc4\x78\x54\x1d\x6f\xf6\xda\x94\x4c\xb9\x58\x15\x58\x55\xf9\xa6\x2d\xb1\xb4\xc9\xab\x64\x36\x21\x53\x2d\xc9\x0c\xd6\x6d\xa4\xe9\x7a\x67\x49\xcb\x36\x77\xcd\x04\x3a\x16\x36\x81\xe7\x08\xd5\xcf\xc6\x06\x09\xb5\xf1\x72\x6f\xbb\xcc\x16\xab\x75\x4d\x87\x90\x03\xf1\x5e\x6e\x70\xb3\x0f\x15\xdc\xdd\xb0\xbf\x2b\x63\x3a\xb2\x90\x9a\xd5\x51\x1b\x4b\xe2\x35\x96\xe1\x9d\xe5\x6f\xd9\x02\xe4\x6b\xb8\xf2\x8b\xde\x79\xcd\x09\xfd\xea\xd3\xeb\x07\x78\xd4\xa0\xf5\x2e\x92\x07\x22\x73\x24\x11\xa7\xbe\x66\x50\x18\xcc\x22\xbd\x0a\xbb\xc4\x69\x94\x5b\x6c\x92\x54\xd4\x46\x99\x36\x31\x68\x47\x2a\xc5\x09\x68\x12\x7e\xd5\xd4\xf2\xa2\x0e\xe7\x15\x69\x8f\xcd\x3c\x26\x94\xa9\xff\xfc\xdb\x5a\xab\xa9\x55\x2b\x4b\x37\xa8\xf4\x86\xa3\x88\x48\x63\x63\xb7\x51\xc8\x78\xc8\x9f\xa1\xc8\xdb\x36\xab\xaa\x8f\xb2\x9e\xb7\x66\xf0\x19\x04\x76\x9c\x6f\x75\x23\x2e\x4c\x04\x4f\xc7\x13\x67\x43\xd2\x67\x46\x4f\xad\x6a\x2d\x7f\x5e\xb0\x91\xaf\xbd\x96\xdf\xa7\x34\xd9\xcc\x42\x77\x5f\x28\x7f\xf7\xa9\xf7\x80\xe4\x24\x3b\xad\x43\x68\xb6\x72\x61\x17\x07\xdd\xbc\x4f\xfb\x6e\xe6\xaf\x81\x6e\x4e\x1c\xec\xeb\x88\x27\x09\x78\x1a\x24\x99\x3e\x13\x51\xdd\x3d\x4c\xf8\x81\xae\x87\xd8\x98\x0d\x00\xde\xce\x13\x23\x1a\xc9\x5f\xb7\x46\x34\x94\xc8\x8d\xbe\x1c\xb4\x60\x42\xd5\x38\x23\xac\xca\xc6\xf6\xcb\x62\xe5\xa1\x23\x0b\x18\x74\xd1\x63\x3b\x0b\x1a\x74\x24\x39\x70\xe0\xe0\x8a\x79\xb4\x35\x78\xb0\xc4\xec\xb2\x58\xbe\xfc\x9a\x71\x81\x43\x46\xf1\xe9\x68\x12\xf7\x59\xa7\x90\x4f\xe1\x2a\xb4\x0f\xe7\x79\x40\xb6\xd1\x21\x7c\x66\x06\xf5\x5d\xac\x61\x05\xdc\x68\xfa\x13\x68\x3a\x06\x34\xd9\x84\x14\xba\xb0\x41\x88\x26\x27\xf1\x29\x8e\xe6\x51\x42\x23\x4f\x67\x1e\x0b\x3c\x9b\x54\x71\x3c\xb7\xf2\x01\x75\xe8\xb5\x50\x87\xea\x0a\xa1\xad\x13\xb7\xed\xf6\x15\xc3\x53\x12\xd0\x90\xda\x88\x86\x74\x92\xe1\x6d\xb0\xbc\xa4\xdc\x2b\xc2\x38\x2c\x9e\xfb\x00\x89\xf4\x0a\x90\x48\x9b\x1c\xfe\x1c\xef\xa8\x70\xec\x03\x4c\x53\x13\xe2\xbd\x3e\x4c\x53\x26\x04\xb4\x0a\x79\xa7\x9e\x1f\xbc\x32\xa2\xcb\xe2\xc0\x5e\x13\x96\xa9\x42\x5c\x5a\x47\x6e\x5c\x86\xcb\xb4\x6c\x5f\x34\xa2\xcb\xeb\xa2\x24\xad\x47\x99\xb5\x00\x90\x2a\xef\xce\x96\xc0\x21\xd5\x2f\x43\x4b\xce\xcd\x2e\xb3\x7a\xd6\xab\xd9\xeb\x67\xf6\xac\xa3\x60\xae\x97\xe4\x93\xed\x87\xe3\x4a\xf4\xc9\x8b\x1b\x6e\x96\xec\xd3\x71\x3e\x78\x22\xd0\x84\x27\xb1\x03\xe1\xc8\xa8\x95\x75\x90\x65\x42\x64\x04\x72\x8b\x71\x3f\x23\x91\xd1\x36\xf3\x42\x7c\xcb\x52\x7a\xb2\x45\x84\xe1\xee\x80\xd1\xec\xc2\x8a\x92\x71\x92\x4d\xec\x27\x2b\xa5\x0b\x59\x34\xff\x2f\x19\x63\x81\x42\xe0\x35\xa8\x1e\xe6\x4a\xbb\xf7\x8a\xc1\x2d\x13\x3d\x3c\xe3\xa8\xa8\x2a\xb1\x6b\xf6\x19\xfc\xfa\x4c\x9d\x21\x06\xfb\x3d\x2e\xf5\x52\xba\xd9\x35\xf2\x54\x96\x37\xcb\x06\xc1\x70\x0b\x15\x13\xb7\x07\x47\x9a\xe2\x2f\x83\x19\x16\x38\x49\x48\x42\xe5\x74\x6f\xc1\xd0\x17\x45\x77\xb5\x3e\xab\x82\x1b\x13\x19\x4b\xa7\x43\xb3\x15\xdd\x40\x6c\x91\x4d\xc5\x91\x48\x99\x0f\xed\x96\x2d\x4c\x56\xc4\x33\x85\x7b\x01\xac\x6a\xd1\x04\xaa\x25\x8f\x30\x15\x8c\xc8\xda\xda\xb4\x24\x4a\x05\x55\xf3\x81\x2d\xf5\xdb\xfc\xc0\xdd\xdb\x37\x2f\xec\x8b\xcb\x3d\xfc\x0e\xd5\xc0\xf5\x97\x95\x16\x9e\x11\x01\xe5\xb9\x5c\xa1\x29\xaf\x9c\xb1\x45\xad\x20\x59\x8d\x2f\x08\xff\x5e\xb8\xb6\xeb\x02\xa7\xf1\xcb\xc0\xcb\x28\x1b\x44\xe5\xcd\xb1\xea\xb0\x56\xe1\x6e\x2d\x9b\xe4\x9e\x91\xa7\x6a\xbc\xe8\x7b\xa8\xee\x63\xd3\x46\x4c\xd3\x7a\xc0\x9e\x2b\x1c\xec\xb5\xf9\xc2\x78\x29\xff\x15\xc5\x6e\xbc\x71\x5a\xac\xa3\xaa\xe0\xab\x25\x83\xed\x78\x6f\x35\x18\xb1\xd7\xc9\x8e\x86\xad\x0f\xba\x10\xe9\x4c\xd1\xe1\x22\xb4\x8f\xe3\x06\x3b\x28\xdd\xdb\x49\x20\xcd\xdc\xb9\x59\x0a\xdd\x9a\x7a\xbe\x05\x4e\x6c\x67\xa7\xe5\x7f\x8b\xa3\xe6\x10\x92\x0c\xc2\x94\x9f\xc7\x78\x33\xa5\x4a\xb9\x44\x09\x63\x80\xd7\xbb\xb3\x68\x9b\x7e\xef\xc2\x5d\x30\x54\x58\x36\x26\xaa\xb3\x3e\xeb\x48\xf4\x42\x10\x23\x16\x42\xa3\xa2\x76\x72\x66\xd5\x87\x9a\x6b\x43\xa2\x7b\xca\x62\x73\xb4\xf0\x40\x95\xcc\xca\xfe\x99\x3e\x46\x38\x91\xe4\x44\x37\x0c\xd5\x82\x15\x87\xe0\x57\x8c\x5e\x04\x9e\xcd\x88\xe8\x33\x9b\xc5\x02\x0e\x27\xce\x13\xd3\x7e\x5d\x88\xaf\xa5\x01\x19\x44\x38\x9a\x1c\x68\x8d\x30\x24\x23\x45\x13\x12\xbb\x7c\xe9\xe2\xf2\xb8\x79\x1b\x83\xfd\x1a\x8b\xd5\x1b\xb9\xb2\x75\x27\xb6\x93\x24\xd2\x1c\x25\x2b\xef\x3e\x23\x42\x8f\x5a\xef\xe1\x67\xc2\x10\x1d\xb9\x71\xd8\xd8\x25\xf4\x02\x9e\x39\xbd\xf5\x9f\x31\x4d\x0c\x00\x81\xeb\xda\x09\x81\xc6\xfd\xd0\x67\xc6\xdd\xcf\xa2\x42\x86\x2e\x65\x54\x4e\x34\xa7\x4e\xc1\x27\x0b\x6a\x46\x5d\xe2\x10\x7b\x5e\xe7\x34\x77\xf5\xe3\xcb\x39\xe8\x33\x15\x9c\x4d\x21\x49\xc8\xe2\x52\x39\xf2\x49\xa2\xb2\xe3\x51\x99\xe2\xb9\x52\x22\x8e\x63\x59\x34\xbe\x1a\xb5\x92\xfe\xb3\x60\x76\x39\x2d\x64\x45\x46\x1e\xac\x12\x04\xb1\xba\x8a\x7e\xcb\xe4\xdf\x90\xda\xb1\x98\xda\x51\x4d\x9b\x36\xa6\x77\x64\x87\x78\xdd\x14\x8f\xba\xe5\xdf\x85\x64\xbb\xc3\x54\x8f\x57\xce\x89\xd8\x4f\x3a\xc4\xeb\xe6\xaf\xec\x23\x75\x25\x24\x78\xbc\x62\x82\x47\x63\x4b\x6d\x31\x36\xbd\xfe\xd8\xae\x95\x1c\xb1\x02\xcc\xaa\xaa\x97\xcf\x44\x09\x1a\xc9\x5d\xf0\x07\x39\xc3\x0d\xa3\xfa\x40\x0b\x9c\xad\x90\x9a\xf4\x03\x99\x13\x14\xe2\xe4\xb2\x0a\x97\x43\x41\xf0\x53\xcc\x5f\x16\x6c\x75\xd2\x47\x13\xf9\xcc\xb5\xd8\x23\x48\x44\x25\x29\x44\xf2\x50\x89\x18\x91\xd6\xd8\x89\xfb\x6c\x42\x89\xc0\x22\x9a\x40\x76\x67\xbe\x30\x26\x4b\xd8\x00\x3a\x99\x58\x0e\xdf\xdb\xb5\xc6\xa2\x37\xa0\x7b\xd9\xc2\x94\xe1\xf3\xd9\x35\xd7\x23\x99\x9a\x57\x32\x61\xc6\x4a\x19\xbe\x49\xae\xd1\xf2\x6f\x9b\x88\x90\x11\x7b\xaf\xc9\x08\x59\x30\x95\xf7\x46\xc3\x84\x84\x7c\x37\x84\xa4\x84\x3d\x25\x25\x54\x90\x78\xbd\xc4\x84\x8d\x4c\x7e\x87\x8f\x99\x76\x3d\x1f\x22\x6e\x7a\x55\xd0\x5a\x3a\x1c\xec\xfd\xe8\x55\xce\xb9\xe9\x09\xfc\x25\xdb\x14\x46\x22\x16\x7a\x9f\x0d\x49\x1c\x03\xa7\x55\xdc\x56\x68\xcf\xf7\x8e\x33\x0f\xe8\xbb\x17\x4b\xbd\xd9\x71\xc2\xd9\x58\xd2\xd8\x80\xcd\xcc\x30\xd4\x2a\xf6\x8d\x17\x00\xae\x00\xeb\x9b\x24\x44\x38\xaf\x84\x40\xdf\x48\xca\x2c\x9a\x64\xf6\x5d\xcc\x89\x64\xef\x95\x31\x16\x60\x36\x47\x4f\x8c\xbf\x24\x24\x1e\xc3\x0a\x95\x07\x73\x8a\x28\x39\x41\x54\x65\xaf\x09\x40\x63\xe0\xa9\xea\xeb\xb1\x43\xac\x9d\xd1\x00\x88\x7d\x57\xd8\xea\x15\x1e\x07\x96\xdf\x9e\x21\xd4\x63\x68\x84\x23\x75\x82\x64\x3a\xcc\xdb\x8f\xb9\x29\x2e\xaf\xb5\x6f\x6f\xe2\x79\x23\x21\x66\xbe\xa2\xf3\xea\xb3\xe1\xb8\x83\xde\xae\x9d\x84\xe2\xad\x62\x0b\x9f\xf1\x36\x10\xab\x9f\x53\x69\x83\x30\x10\x67\xd9\xd1\xb7\xf0\x52\x19\x46\x36\xe0\x9d\x1a\xbc\x69\xc6\xe3\x5a\x5b\x67\x69\x2a\xeb\x8e\x25\x0f\x04\xb5\x82\x92\x75\x54\x41\xbb\x86\xdc\x5a\x6a\x92\x4a\x10\x3c\xb5\xce\x01\x7d\xd5\x80\x58\x63\xc2\x40\xf5\xe8\xa9\x30\x12\xe6\x3a\x4b\x7c\x45\xd9\x93\x5e\xdd\x1c\x15\x9c\x03\x5e\xb2\xee\xb9\x6a\xd1\x66\xfa\xc6\x23\x17\x9c\x19\x07\xe1\x56\x72\x27\x1d\x33\x9c\xac\x69\xe3\x58\xa0\xdc\xa2\x4f\xcf\xc9\x59\x56\x5c\xd0\x52\x84\x31\xf6\x21\xd3\xe3\x5a\x36\xa4\xd2\x7c\x7d\x79\x0f\xa3\x98\xcc\x08\x8b\x09\x8b\xe6\xb0\x45\x18\x20\x07\x09\x86\x13\x84\xe1\x3d\x9c\x9c\xa1\x4b\x93\x5f\x94\x49\x78\xf6\x5a\x87\x0b\x7d\x8a\x19\x1d\x69\x3d\x01\x8c\xb0\x76\x94\x7d\x66\x86\xe9\x7c\x20\x24\xb7\xae\x66\x14\xab\x5a\x19\x7d\x83\x5c\x6f\x89\xca\xcc\x8a\xef\xa3\xe5\x17\x0e\xf4\xb6\x6c\x75\x74\x73\xae\x06\x83\x4c\x87\xa7\xf0\x77\x21\xe1\xce\x01\x15\xe5\x28\x3a\x24\x21\x60\x0e\xb4\x1e\x2f\xb8\x18\xeb\x80\xf5\x76\xe1\xb7\x5b\x91\xc7\xe2\xf5\x51\x50\x6a\xa6\x94\xd1\x69\x3a\xf5\x9c\x77\xa6\x62\x43\x64\xed\x97\x26\x13\x65\xa6\xf5\x80\xc8\x81\xb7\x23\x7d\xb9\xb2\x39\x1a\xd3\x67\xc2\xfa\x6c\xc6\x29\x53\x67\xe8\x9a\x2b\xe2\x95\xc8\x30\xd0\x59\x7c\xa6\xe8\xd4\xa0\xbd\x0a\xa2\xcf\x81\x01\x05\x07\xa0\xcd\x09\x56\x27\x28\x4e\xe1\xa8\x32\xa2\x34\xeb\xd0\x37\xae\x82\x95\x81\xf8\x70\xd1\x67\xe6\xa6\x1b\x61\x9a\xa4\x82\x58\x99\x15\x9b\xbc\xa0\x7c\xc8\xf9\xc8\x2c\x12\x9c\x37\x89\x29\x1d\x4f\x94\x5e\x22\x2d\xe3\x59\x7f\xe3\x44\x73\x23\xde\x67\x43\x82\x30\x9a\x71\x49\x15\x7d\xce\xfc\x97\x74\x84\xb0\x94\x60\x41\x39\x43\x97\x05\xfb\x3f\x95\xa0\x7a\xd7\xc5\x15\x53\x36\xb0\xb6\xe7\xfa\x7c\xa4\xad\x17\xb2\xd0\x8b\xa5\x32\x1e\x4a\x9e\xa4\xca\x77\xc1\x56\xaf\x6d\x6e\x1a\x77\x85\x0b\xc0\x40\xcc\x47\x7d\xe6\xf6\xb5\x3c\x43\x1d\x89\x24\xd7\xab\x24\xcd\x52\x46\x82\x2a\x22\xa8\x41\xb1\x22\xca\x2c\x42\x76\x4e\xb3\x33\x30\xc5\xe2\x49\x8b\x50\xbe\x05\xde\x60\xaa\x16\xac\x1d\x43\x23\x21\x01\xac\x97\xbf\x1c\x60\xfa\x47\x8c\xb3\x53\x46\xc6\x78\xd5\x8a\xf4\x59\x61\x49\xd0\x37\x74\x94\x2b\xa4\x75\x3e\x47\x8f\x76\x03\x88\x7c\xaa\x5b\x25\xd3\x71\xdd\x22\x8d\x12\x8e\x57\xb8\x8d\x47\xf9\xa1\x47\xff\xe0\x43\x33\x46\xad\xf7\x73\x05\x52\xa0\x56\xaf\x46\x5c\x90\x09\x66\xf1\x89\x5b\xac\xe2\xd8\xe0\x66\xb4\xa6\x36\xa7\x8c\x81\x24\xe8\x40\x94\x89\xc1\xa2\xc2\xcc\x5b\x0b\xab\xb8\xd9\xa5\xc8\xd7\x61\xad\xbb\x22\x6b\x0d\x6a\xbf\x18\x03\x84\x61\x79\xf3\x99\x3d\xe2\x92\x4e\x67\x49\x9e\xd3\xe5\xd9\x46\x47\x5a\xc4\x72\x3c\x92\x3f\x83\xe9\xca\x69\x6d\x70\xab\xdb\x95\xd3\xfb\xac\x62\xe4\x19\x23\x85\x5b\xc3\xd9\xbc\x4c\x19\x50\x8f\x85\x7d\x23\x89\xfe\x53\x91\x5c\xed\x33\xc2\x7a\x9f\x39\x11\xe4\x5b\xe0\x32\xb6\x59\xcf\x78\xa6\x45\x68\x03\x73\x6b\xe9\x87\x22\xe3\xe4\x2e\x9c\x13\x7b\x18\xdc\xa3\x95\x17\x95\xa2\x5a\xcc\xfe\x9e\x02\x42\xd7\xe5\x96\xb0\xfb\x94\xc5\xa4\xb6\x98\x55\x23\xae\x51\x77\xb7\x18\x86\x3a\xd8\xb4\xfe\xc4\xc3\x84\x48\x82\xd4\x4b\x06\x14\xa7\xf5\x2a\x30\x59\x0a\x92\x90\x67\x9c\xdf\x71\x59\x5f\x96\x5d\x46\x58\xd6\x94\x87\x01\xb4\x35\x3d\xfe\xcd\x13\xa7\xb3\xf1\xdd\xe8\xa1\x3c\xe3\xc4\x26\xae\x58\x5f\xb9\xac\x5f\xb0\xde\xe5\x56\x31\xa4\xb6\x95\x2a\x7a\xd6\x8b\x18\xae\xef\x1f\xc9\xbc\x9a\x22\x2b\x40\x0c\x97\x65\xa3\x67\x64\x5f\xc3\x56\x7d\x9b\xbf\xb3\x48\xe3\x5a\xca\xfd\x58\x98\xf2\x2b\x24\x51\xdd\x2e\x54\xe0\x86\x8f\x32\x1d\x8d\xe8\x17\xd0\x6a\xdd\x4d\xe2\x34\x8f\x48\x70\xa9\xb9\x18\xc8\x2a\xc8\x2d\x9e\x71\x24\x6f\x93\x50\x55\xf9\xa6\xd6\xb2\xd6\xde\xd1\xb5\xd4\xfe\x29\x25\x62\x2b\x7a\x67\x5b\x75\x9d\x70\x44\xef\x94\x54\xeb\x88\xae\x51\x85\x1b\xc6\x24\xf9\xad\x3e\xe0\x1a\xd2\xad\x86\x3f\xaf\x7c\x6d\x68\x98\xef\xfa\x03\xf1\xb9\xf6\x52\x9b\x5a\x1e\x9f\x96\xc5\x26\xbb\xa2\x44\x9a\xbf\x9d\x58\x80\x75\x6c\x03\xa7\xb2\x54\x67\xec\x62\x46\x8c\x63\xc4\xd4\xac\x52\xb6\xd2\x82\xa7\xa9\xdb\xc6\x28\x1b\xf7\x99\xa3\xad\x3c\x41\x26\x4c\xbc\xc4\x50\x0b\xd8\xf6\xd8\x7b\x35\xdb\xd8\xcd\x4c\xaa\xc6\xaf\xce\x88\x94\xfa\x62\x94\x4a\x60\xca\xac\x0f\xc7\xd1\x47\xf6\x19\x3a\x2d\xc7\xa9\x9f\x80\x1d\xe1\xc4\x65\xbb\x9e\xe4\x03\x94\x7d\x66\x32\x4e\xd0\x5f\xd0\x37\x0a\x8f\xcd\x2d\x01\xe8\x95\x38\x01\xdc\x4b\xd0\x12\xac\x56\xee\x25\x07\x64\x27\x92\xc6\xdf\x9e\x2f\xeb\xd3\xd8\x10\xbe\x81\x66\xe0\x90\x6b\x1a\xe6\x04\xa2\xa3\xfc\x0f\x12\x7f\xbb\xac\xa5\xfc\xa5\x27\x32\x3f\x29\x13\xb9\xfe\xde\x78\xc0\x5b\x45\x68\xee\xeb\xe2\x80\x41\x37\x77\x52\xe2\x21\x49\x7e\xce\x27\x8a\x96\xb2\xa2\xef\x29\xc3\xdb\xf1\xa0\xca\xe1\x35\x8b\x40\x1f\xce\xeb\xea\xd6\x55\xb0\x9e\x8d\x11\x57\x3a\x46\x96\x25\x48\x77\x67\x25\x76\x57\xd5\x10\x43\xd4\xe3\x84\x24\x33\x14\xd3\x11\xb8\xde\x14\xec\x97\x0c\x3c\xd6\xd4\xfb\xd1\x0a\xcd\x34\x65\x06\x08\xd8\x44\x7d\xbc\xd8\x93\x6e\x59\x46\xde\xf8\x59\x9f\xf5\xd4\x7b\x89\xa4\x12\x9c\x8d\xb5\x32\x1d\x3f\x53\x99\x17\xb2\xd3\x07\x32\x9d\x12\x61\xbb\xa0\xd2\x48\xdd\xb6\x08\x14\x76\x17\x9b\x1e\x9b\xbe\xfa\x40\xf0\x71\xc5\x16\xf5\x97\x46\xaf\xd0\xa3\x94\x2e\x6a\xaa\x22\xec\xdd\x2e\x6e\x89\x77\x1e\xd8\x74\xf9\xb3\x6f\x9d\x44\xd3\xdc\x90\xe9\xf8\xe5\x87\xb2\x19\xd3\x52\x7d\x89\x09\x73\xed\x0b\xa1\xe9\x45\xe0\xaa\x26\xa4\x26\xcd\x49\xf7\xe3\x1c\x5b\x66\x70\x6b\xa9\x58\xa5\x09\xda\x51\x1b\xed\xc9\x37\x61\x12\x0a\xf6\x0f\xa9\xb0\xa2\x91\xbd\x05\xb8\xb0\x56\x5c\xab\x57\xd7\x2f\xed\xb6\x3a\x89\x8c\x70\xb2\xb8\xc2\x4b\x7c\xea\xe6\xf9\xe5\x86\x4e\x7b\xdc\x4c\xdb\x4b\x81\x5d\x22\x9e\x24\xeb\x94\xa9\x2b\xcd\xfc\x22\x7f\x7d\xf9\x88\xf2\x7e\xf4\x02\xb8\xb5\x80\x53\x63\x0c\x14\x38\xb1\xee\x22\xa9\xec\x2a\xf9\x0f\x99\x4b\x6d\x6e\xd5\xc7\x3e\xe3\x23\x28\x64\x98\xd4\x45\xae\xcf\xfe\x3f\xf6\xde\xb5\xb9\x71\x23\x49\x17\xfe\xbe\xbf\xa2\xd6\xfb\x46\x74\xf7\x59\x8a\x72\xdb\x67\x26\xbc\xda\x70\xc4\x4b\xab\xd5\x36\xc7\x6a\x49\xa3\x8b\x3d\x7b\x86\x13\xec\x22\x50\x24\x31\x02\xab\x60\x14\x20\x35\x67\x77\xfe\xfb\x89\xca\xcc\xba\xe0\x46\x02\xa2\xd4\xf6\xee\x99\x0f\x33\x6e\x11\x40\xdd\x2b\x2b\x2b\xf3\xc9\x27\x73\xb5\x49\x86\x64\xd2\x40\x30\xf7\xb5\xf5\xfd\xef\xf1\xa4\x58\x84\x00\x98\xdf\x70\x79\x51\x8d\xc0\xc9\xc0\xc9\xa4\xb6\x63\x0f\x6d\x78\xf6\xa4\x01\xdf\x87\x7c\x99\xb0\x0d\xc2\x8e\x68\xf4\x80\x53\x5b\x40\x70\x2a\x0c\xf2\x23\xdf\x7a\xfa\x9b\xae\x1c\x09\x72\xd0\x72\xb8\x33\xaf\x4f\xe5\x52\x0d\xd8\x9c\x9e\xae\x86\x76\x1f\xb7\x6b\x36\xd8\x7f\x0e\x89\x81\xb3\x8f\x63\xda\x67\x3f\x9e\xb6\x2d\xea\xc1\x3b\xd3\x8e\xe0\x4b\xfa\x61\x43\x21\x12\x7c\xf3\xf7\x21\x67\x6b\x75\x6b\x05\x25\x32\x68\xce\xee\xa1\xfa\x50\x59\x87\xcf\x3e\x46\xb5\x72\xe0\x99\x0f\x18\xbb\x6a\x2f\xf5\x33\x8c\x19\x6d\x92\x5e\x83\x75\x20\x3f\xd7\xb0\x5c\x0f\xb6\x46\x97\xd9\xe1\xe0\x9b\xdc\xbe\xc1\x00\x69\xa6\xe9\xd6\xe0\xa3\x4f\x88\x06\x60\x99\xa4\x42\x8f\xd9\xb4\xc5\x89\x6b\x83\xf0\x1d\x68\x1c\xc3\x01\xad\xf6\x54\xe6\x49\x90\xfc\xdd\xea\x48\x2c\x81\x24\x74\x21\x90\x25\x70\x5a\x80\xfb\x74\xad\x1e\x31\x02\x2f\x4f\x8c\xcc\x42\x65\xb5\x00\x97\x96\x91\x05\x09\x79\x84\xd0\xa1\xe6\x3e\x50\x18\x17\x61\xae\x39\xce\x19\x16\x5a\x20\xea\x53\xfa\x1c\x69\x3c\xfb\x73\x1c\xd8\x5a\x6f\xcd\x17\x7d\x2e\x05\xf6\xdd\x03\x5a\xe7\xb4\xfc\xe1\xf6\xc8\xf7\xf0\xa9\x35\xec\x72\xb6\xcc\x05\xdc\xb2\x37\x8e\x37\x0d\x13\x27\x28\x05\xe7\xdd\xcd\xbb\x1f\x8f\xef\xa6\x4c\x14\x11\x4b\x93\x7b\x31\x93\x91\x7e\x80\x4b\xdf\x2f\xa5\x28\xcc\xcf\x1d\x46\xa0\x64\x23\xa4\x06\x49\x90\x14\x3d\xef\x6b\x76\x60\xcc\x7f\xdf\x55\xbf\xef\x73\x2b\x77\x5c\x9f\x66\xed\xda\x9c\x86\xb0\x4c\x21\x6d\x1b\x0e\x6d\x8b\x5d\xf3\x3b\xf4\xb7\x9e\xb5\x65\x3c\x7f\x42\x48\xb4\xfc\x6b\x29\x07\x2a\x5d\xa7\xfe\xa3\xa0\x15\x1d\x3a\xdd\x26\xe3\x90\xcf\x64\x58\xac\x35\x7e\xd3\x5a\xfa\x3e\x21\xe2\xa9\x6f\xac\xff\xdc\x27\x87\x67\x45\x2e\x04\x88\x10\xb7\x9e\xe8\xac\x27\xb6\x35\xd7\xb1\xe0\xa3\xf1\x4c\x7e\xb0\xa8\x3a\xff\xab\xf6\xbe\x86\xcd\x22\x48\xf3\x52\x2d\x05\x8a\x8d\x13\xed\x7e\x80\xa4\x7d\xba\x4c\x0b\xcc\x5a\xbc\x4c\x24\x4f\x5d\x43\xf1\x49\x9b\x94\xc8\xb9\x8c\xd6\x87\xba\xc9\x93\xe5\x5c\xa4\x43\x34\xd1\xe9\xf2\x2c\xd5\x66\x7d\x47\xf7\x1d\xbb\xf3\x29\x79\xb9\x7d\x67\xd0\xe3\x44\xb9\x3d\x99\x77\xb3\xf3\x14\xb3\x06\x0b\x06\x38\xac\x7a\x84\x3c\x92\x80\x99\x59\x24\x4d\x1d\x61\x58\x18\x9a\xea\xc2\xce\xa0\x16\xc6\x8b\x99\xcc\x4b\x09\x09\xc5\x1c\x2a\x93\x33\x9f\x13\x26\xb2\x18\x09\x42\xac\xac\x8c\x98\xc0\x94\x2b\xf8\xb2\xb9\x9f\xa9\x52\x83\x3f\x6a\x23\x0a\x73\x40\xbd\x86\x5c\xff\x08\x8b\x1e\xb1\x2c\x4f\x36\xe0\x52\xd6\x6f\x5a\xa6\xee\x94\x17\x3c\x55\xab\xe7\xb6\x2a\x3d\x31\xc4\xc6\x36\x83\x4d\xdf\x99\xc1\x5f\x09\x29\x72\xe8\x28\xd8\xb2\x5b\xb7\x70\x0f\x2b\x77\x87\xe4\x06\x4f\x22\x39\x7f\xb5\xb3\x58\xf0\xb2\x50\x1b\x73\xbf\xe5\x69\xba\x1d\xa1\xd7\x59\xb0\x35\xd7\x6b\x3b\xd1\xe8\x30\xec\x73\x36\xd1\xe0\x9e\xf2\x68\x2d\x6e\x0a\x5e\x94\xad\xc8\xac\x5a\x2b\xbf\x10\xb2\xdc\x7c\x71\xc2\xfe\xec\xfb\x78\x3a\x39\xfd\xe1\x6c\xfe\x6e\x7a\x33\xf9\xee\xfc\xec\x5d\xd0\x1f\x7a\xf2\x61\x7a\x73\xd3\xfc\xf5\x87\xe9\x6d\xf3\xc7\xab\xcb\xab\xbb\xf3\xc9\x6d\x5b\x29\xe7\x97\x97\x3f\xde\x5d\xcd\xdf\x4f\xa6\xe7\x77\xd7\x67\x2d\x9f\xde\xdd\x76\x3f\xbc\xf9\x71\x7a\x75\xd5\x56\xea\xd9\x4f\xd3\x53\x53\x1d\xfd\xfe\x97\x60\xdb\x81\xeb\xdc\x8c\x40\x47\xff\xea\x3b\xf3\x88\x55\x5f\x3c\x61\x77\xf5\xbc\x57\x14\x88\x85\x24\x62\x8f\x5c\x1b\xe1\x06\x71\x80\x60\x82\xf5\xa3\xd5\xf5\x29\x62\x95\xa3\xb5\x60\xa9\x52\xf7\x65\x46\x32\x0f\xad\xed\x52\xa1\x45\x48\xe8\xa0\xb4\x1f\xa6\xb7\x27\xcd\xfc\x5b\xae\xb0\x80\x2e\xd5\x19\x97\x1f\x39\x52\x07\x80\x9c\x05\x23\x8b\xcd\xcb\xe4\x5d\xd7\x41\x0d\x6e\xca\x76\xd5\x83\xa5\x71\x59\xd4\xaa\x89\x63\x4f\xb2\x04\x1d\x0b\x0a\xae\x4e\xf8\xae\xd1\x74\xc3\x81\x89\x47\xd9\x42\x44\xbc\x44\x44\xb7\x39\xc0\xf2\x5c\xe5\x61\x83\xfd\x42\x79\xbe\x42\x69\x81\xb5\x16\x58\x9b\x33\xd3\x71\x7d\x9f\x64\x59\x65\xda\x69\x21\xee\x9f\x79\x48\xf5\xf6\x90\x44\x85\x88\xbf\x68\xea\x45\x3e\x06\x1f\xf5\x66\xb3\xab\x4d\x93\x83\xbd\x9e\xc8\x15\xda\x12\x6c\xd2\xbd\xf5\xd6\xa1\x90\x00\xf4\xea\x61\xc0\x90\x04\xc4\x9c\x35\x2e\x29\x5a\x02\xb0\x22\x5e\xb0\x47\x01\x74\x34\x25\x65\x1d\xc5\x3b\xbd\x91\x19\x50\x1d\xe2\x01\x6c\x0e\xe1\x0a\x4d\x4d\xa7\x90\x7f\x0e\x45\xde\x7c\xaf\xc5\x30\x27\xde\x5e\x4e\x91\x77\x58\x28\x48\x7d\x1b\x2f\x00\x2d\x7e\x4e\xa7\x5f\xcb\x49\xb7\xe7\x10\x32\xc7\x41\x9f\xf6\x58\x1e\xb7\x4a\x72\x94\xfe\x0d\xab\x24\xd0\xd8\x3b\x56\xb7\x2a\xe6\x5b\xb3\x38\x00\xf4\xa0\xcb\x2c\x53\x79\xc1\x3a\xca\x40\x08\x24\xb6\x0f\xce\x32\xea\x87\x13\x91\x50\x88\xd1\x5c\x74\x4b\x1e\xb6\x7e\xd4\x52\x34\xae\x81\xef\x2c\x08\x2e\x82\x0b\xa6\xcb\x99\xb9\xa9\x5c\xd5\x2b\x2b\xb4\x4d\xa9\x3e\x24\x3a\x33\x33\x8a\x43\xdf\x14\xce\x6d\xb5\x5f\xda\x12\x5a\xa7\x3c\x15\xcb\x62\x3e\xd0\xd9\x05\x25\xca\x2e\x36\xc0\x64\xb5\x7e\x86\x12\xfb\xdf\x3e\xbe\x22\x50\xb4\xb9\x72\x04\x96\x87\x5c\xa9\x02\xf5\x5e\x7f\x37\x62\x76\x34\xc1\x6c\x41\x95\x52\x1c\xbd\x53\x2e\xcd\x5d\x02\xb1\x64\x2e\xe4\x7c\x3c\x93\x67\x00\x3e\xf5\x17\x1c\x1b\x5e\x0f\xb7\x8b\xbd\xf7\x8a\x4a\xc2\xfa\xcf\x1a\xe9\xd2\x9d\x1d\xc0\xaf\x7b\x84\x2c\x8a\x74\xeb\x38\xa2\x62\x56\xf9\xae\xcf\xee\x41\x6b\xba\x55\x2d\xb1\xc3\xb8\x75\x74\x21\x32\xb2\xf8\x63\x3f\x3d\x4a\x1a\xbc\xcd\xa6\xaa\x31\xfb\xd9\x5a\x94\x20\x68\xc8\x05\xd1\x58\xdc\x6b\xca\xb7\x96\x50\xbc\x6d\x60\x9f\x83\xa3\xfb\xb9\xc3\x88\x76\x0f\xb0\x23\xe3\x6c\x19\xe5\xca\xc5\x5e\x4a\xb4\xf4\x0e\x80\x21\x9d\xba\x8f\x6e\xc4\x6e\x44\xe5\x7b\x48\xe1\x4e\xa8\x74\xd0\x59\x64\xba\xfd\x67\x9c\x2c\x64\xf1\xb0\x20\x0d\x4a\xa9\x4d\x9e\x59\xb3\x7f\xc0\xb3\x88\x24\x1f\x6c\x99\xa4\x29\xe8\x01\x63\x36\x91\x5b\x4b\x82\x61\x8e\x42\x0b\x4e\x4d\x56\x52\xed\x8b\xcf\xef\x58\x4c\x51\xb0\x98\x6e\xba\x17\x13\xe2\x3f\x3c\x07\xd2\xf3\xac\xa8\x67\xe0\xc3\x33\xb2\x85\x37\xb3\xa9\xf4\x67\xc1\x1b\x60\x14\x08\x4f\xf3\xcf\x15\x59\xd6\x68\x6e\xf0\xe1\xdf\xdb\x9b\xfe\x7d\xc9\x73\x2e\x0b\x88\x97\x22\xa5\x35\x17\x41\xd8\xb6\xf8\x04\xd8\x56\x89\x06\x66\xf8\x29\x9c\x5c\x0b\x25\x40\xf8\x59\x12\x8f\x58\x32\x16\x63\xc8\xec\x9b\x1b\x5d\x62\xe1\xdf\x5c\x1b\xcd\x61\x26\x1b\x71\x20\x63\x36\x49\xb5\xa2\x2f\x84\x8c\x52\xa5\x01\xda\xbb\x08\x49\xd7\x61\xe5\x93\xbb\x6a\xb1\x85\xfb\x0d\x4c\xa5\x2f\x5e\xd1\x83\xe0\x43\x48\x50\x0b\xbe\xf6\x14\x76\xba\xff\xfd\x5f\x15\xd1\xc7\x76\xe1\x2f\x5e\x30\x15\x58\xe3\x18\x7a\xb1\x49\xc2\x34\xd3\xbb\x26\x08\xde\x80\x89\xf1\xf1\x39\x01\x7b\x1d\x7b\xcd\x0b\x96\x0a\xae\x0b\xf6\xf6\xcd\x20\xcc\x89\xed\xa0\x97\xae\xb4\x7d\x7d\x90\xbd\x0d\xd3\x0c\x95\x3b\x57\x31\xe4\x1d\xe6\x79\xc1\x38\x93\xe2\x31\x8c\xca\x51\x10\x48\x65\x93\x09\x8b\x80\x17\x04\xb1\xf8\xc8\x6a\x04\x91\xae\x78\x65\xea\x90\x23\x36\x55\x06\xb9\x65\xa9\x59\x2d\x2b\x6b\xe4\x50\x6d\x00\x63\x37\x2f\xf9\x80\xc9\x35\x2f\x66\x92\x24\xab\x85\xa3\x04\x21\xf2\x93\x34\xad\x06\x29\x72\x88\xc3\x95\xa6\xc3\xa6\xf5\xf1\xd8\x0d\xd0\x05\x5c\xbf\x5c\xa4\x58\xc5\xfe\xe7\x37\x0b\xc6\x32\x38\xae\xc8\xb0\xec\x56\x6d\xa7\xcd\x6e\xfd\x19\x95\xe0\x96\xea\xcf\xd5\x2a\x89\x78\xda\x43\x19\x16\x6d\x4d\xde\xb3\xb1\x9a\xbe\x82\x1d\xba\xf1\x73\x57\xd0\x5f\x55\x6e\xb7\xbb\xc3\x31\xfb\xa8\x5a\xcc\xf8\x1d\x93\x1b\xe8\x16\x87\x5c\xc0\x5d\xc8\xe2\xe7\xf2\x24\x57\x9a\x3e\x8d\x81\x30\x61\xbf\x14\xf4\x04\x04\x56\x74\x60\xdc\x5a\x1c\xc4\x43\x07\xe1\x97\x04\x22\x45\xc1\x47\x6f\x76\x78\x74\xb3\xff\xde\xdd\x1f\xf9\xfe\xdb\xae\x38\x70\x5d\xb3\xe3\xdd\xca\xde\x24\xfe\x2b\x8f\x20\x4a\x12\x6a\xb2\xf1\x99\x4d\x32\x4b\x9b\x02\x85\x83\x93\xa0\x55\x3d\xcc\x72\x15\x09\xad\xc7\xec\x0c\x0e\x1a\xfa\x93\xf1\xa5\x75\x74\x04\x2f\xcf\xa4\xb9\x99\x58\xee\xbb\xa0\xfc\xea\x12\x6f\xdb\x01\x48\xa4\x7b\x90\x8f\x68\xb3\x3f\xbf\x5d\xd7\x6d\xc2\xf2\xf8\x42\x19\x90\x12\x8b\x9d\xad\x4e\x58\xac\xa2\x7b\x91\x1f\xe7\x22\x4e\xf4\x09\xf8\xec\x8b\x4e\x67\xe1\xc6\xdc\xb6\x0f\xd6\x34\xba\x00\x08\x7b\x08\x05\x4e\xb1\x7e\x0a\x29\xb0\xa1\x49\x23\x96\x2c\xe1\x3a\x61\xe3\x59\x31\x80\xcb\x52\x05\x0a\x59\xe4\x5b\x44\x3b\x5b\x53\x56\x6d\x20\xec\x4d\xc3\x28\x6d\x5d\x91\xd8\xf9\x73\x60\x7b\x9e\xd8\x6d\x8c\xf8\x21\x20\x03\x76\xaa\x50\x14\x07\x86\xe2\x22\xe3\xc5\x5a\x03\xed\x47\x75\x0c\xe8\xd2\x05\x9f\x9a\x11\xe2\x19\xe0\x20\xd0\x4a\xe1\x3f\x72\xe4\x14\xba\x48\xd2\x74\x26\x31\x70\x03\x18\x3a\x5e\xb5\xb2\x0b\x99\x4f\x47\x8c\xc7\x31\xfb\xff\x5e\xbf\x3f\xff\x8f\xdb\xb3\xf9\xf4\x02\x6c\xde\xd3\xf3\xb3\x37\x23\xf7\xe3\xe5\xdd\xad\xfb\x15\x2d\x2c\x0f\x22\x67\x1b\x7e\x0f\x57\x3c\xa9\x05\x05\x9e\x8a\x99\x0c\x5b\x6a\x79\x97\xcc\x13\x2d\x2c\x82\x96\xd4\x14\x47\x3f\x4d\x73\xd8\x45\xda\x4a\x74\x9c\x03\x2e\xbf\xd7\xee\x93\xdd\x6b\xd0\x2e\x1e\x57\x85\x55\x03\x21\xbe\x98\xeb\x80\x88\x87\xee\xbe\x7e\xc1\x09\xb9\x4a\x64\x17\xce\x4f\xc8\x87\x97\x54\xe2\x7f\x14\x5b\x00\x9a\x5f\xf1\x24\xef\xbd\xf6\xda\x99\x14\xed\x8e\x31\xf7\x74\xae\xeb\x9b\x4a\xa3\x2e\x8c\x91\xca\x9d\x58\xd2\x36\x12\xdd\x5f\xbd\xbb\x44\xcd\x29\x3e\x15\xb9\x65\xf8\x72\xb1\xb0\x96\x06\xd3\x1d\x34\x7e\x0d\xce\xe4\xed\xe5\xbb\xcb\x13\x26\x52\xbe\x50\x10\x06\x49\x50\x23\x5b\x04\x0d\x58\xa4\x36\x41\x41\x15\x76\xb7\x11\xcb\x3c\xbb\x5b\x68\x44\x1b\x63\x19\x7b\x58\xde\x32\x95\x37\xb9\xd1\x9e\xf7\x0a\x48\x9d\xbd\x52\x79\x9f\xe3\xdf\xbc\x86\x71\x21\x99\xb9\xc8\xd5\x24\x2f\x9d\xcd\x4b\xc1\x81\xf9\x83\xdc\x42\x64\xcb\x27\x60\x6c\x9a\x56\x72\x71\x9b\x8d\xa3\xc7\xe4\xda\xf7\x6f\x2a\xc9\x7e\xfc\x46\xb3\x45\x59\xcc\x64\xb5\x0c\x25\xd9\xe4\xe7\x1b\xf6\x1d\x2f\xa2\xf5\x9b\x99\x84\xb8\xc4\x1f\xbf\xe9\xa0\xa1\x1c\xcc\xec\x6c\xc6\xe4\x1d\x2f\xf8\xb9\xe2\x71\x22\x57\x6d\xb4\xce\x3e\xf7\xe0\xd9\xed\xe4\x84\xd9\x14\x30\x3e\x8a\xb6\xb0\x74\x2a\x41\x41\x20\x90\xa1\x23\x56\x8a\x80\x28\x97\x55\xea\x5b\xbc\x99\xc1\x81\x35\x93\xb7\xc8\x67\x6d\xa4\x6a\x52\xb0\x4c\x51\xfe\x4b\x73\x2b\x43\xa6\x6f\x6e\xa3\xcb\x45\xba\x65\x66\x74\x60\x19\xbb\xc9\x20\x7d\x0c\xf4\x99\xa6\xb0\x9f\x49\xb8\xa0\xbb\xb8\xde\x54\x45\x3c\x05\xac\xdf\x51\x60\xd3\x33\xd7\x76\x55\x02\xb7\x0e\x80\x6c\xe4\xb6\x0a\xc9\x75\x74\x4f\x4e\x29\x0b\x27\x0a\x0c\x00\x30\x8f\xe4\x87\xdc\x28\x23\x71\x90\xc7\x16\x8c\x6f\x29\x8e\x8e\xf9\xd0\xf1\xda\xe2\xb0\x98\xa7\x2e\xe4\x5d\x95\xd2\xf2\xb8\x45\x60\xbe\x97\x5b\x80\x85\x43\xc2\x3a\x05\x90\x12\x2f\x9d\x69\x51\x36\x66\xd1\x9d\x89\xc1\x67\x33\x89\x08\xc4\xca\xbc\x84\xcc\x87\x41\xed\x4a\x02\x40\xb2\x19\x67\x5f\x66\x04\x98\x24\x5d\x3f\xcb\xc5\x91\x8b\x1e\x8f\x2b\x63\x6a\x4e\xd8\x31\xbb\x0e\xaf\xd7\xb1\x8a\xca\x8d\xcd\x4a\x01\x91\xe7\x84\xac\xa3\x43\xd4\xad\x10\x3c\xd8\xf7\xad\x78\x60\xb8\x2b\x04\x50\xef\xf4\xbe\x1f\xe3\x82\x99\x84\x9f\x36\x35\xf5\x6e\xc5\x17\x64\xc7\x61\x68\x38\x2c\x68\x9e\x55\x4b\xaa\x94\x76\x30\xa7\xc3\x85\x67\xce\x57\x39\x28\x5b\xe2\x53\xa6\xc0\xc8\x8d\x81\xd5\x2a\x7e\xa5\xd9\xf4\xca\x68\x40\xe6\xc6\xeb\xf6\x60\xa9\x0b\x04\xad\x61\xfc\x33\x7c\x8d\x61\x08\x23\xf6\x25\x9b\x95\x5f\x7e\xf9\x75\xc4\x3e\xd9\x7f\xfc\xfe\x77\xbf\xfb\xfa\xf7\x43\xc2\x54\xec\x85\x1c\xca\xf5\x63\xe4\x52\x91\x56\x55\xa2\x70\x06\x9a\x92\xea\x80\x59\xa0\x0d\xd8\x35\xfc\x4f\x61\xc8\x0e\x30\x49\x7c\x45\x3b\x5c\x87\x3b\x93\x55\xb6\xa6\x47\x12\x68\x51\x8c\xaa\x12\xc2\x29\xbb\xa4\xd1\xff\xf3\x0e\xa2\xd7\xb9\xd9\x2a\x4f\xc3\x4e\x25\xa9\x53\xaf\x4d\x21\xec\x35\xd9\xff\x0a\x70\x20\xbe\xb1\x07\x9c\x4a\x63\x91\x63\x9b\x9c\xc9\xce\x19\x12\x41\x38\x88\x4f\x59\xaa\x62\x4b\x2d\xef\x79\x14\x12\x50\x10\xce\x3e\x71\x23\xb9\x47\x44\x41\x4a\x71\xab\xe0\x79\x59\xf2\x48\x50\x8c\xf5\xeb\x4f\x27\xe6\xb7\x11\xdb\x9e\x00\x38\x75\xc4\xfe\x76\x42\x4c\x83\x3c\x2f\xe6\xe6\xa7\x37\x56\xd7\xa6\x22\xa0\xd1\x89\x66\xaf\x8e\x1f\x78\x7e\x0c\xe2\xf9\x18\x5b\xf4\x8a\x24\xab\xcb\xa9\x1c\xea\xe6\xa9\x52\xf7\x04\xdc\x6d\x7c\x78\x6c\x49\x6b\x61\x79\x3b\xbf\x09\x4e\xbd\x23\x35\x2a\xd8\x11\xbc\x20\xd8\x38\x5b\xb0\xf1\x5f\xb5\x92\x6c\xbc\xe5\x9b\x94\x7e\xb5\x4f\x09\x57\xcc\x35\xc5\xda\xc5\x0e\x23\x94\x6e\xd1\x52\xfa\x5d\xaa\x16\xd0\xab\x0f\xb6\xa7\x88\xcc\x85\x86\xfa\xd3\xc7\x1f\x58\xd4\x11\x4b\xe2\x01\xdc\x8b\x1b\x55\xe0\x2b\x14\x36\xdb\xec\xd5\x27\xd7\xa4\x3f\xa1\x5f\x18\x06\xc5\x06\x07\xa2\x71\xd8\xa1\xe2\x4c\xa1\x9f\xd8\x6b\x12\x41\x6f\xcc\x19\x43\x30\x68\x1c\x86\xb6\x0a\xb6\xae\x82\xff\x08\x2a\x48\x24\xc3\x70\xcf\x1d\x5f\xfe\xed\x78\x3c\x1e\xbb\xaf\x81\xf1\xe7\xff\xb0\xa4\xd0\x22\x5d\x62\x49\xf6\x04\xdb\xce\xe4\x07\x9b\xb4\xca\x1a\xaf\x3d\x1d\x76\x96\xab\x42\x45\x2a\x65\x47\xde\xa0\x1b\xab\x48\xb3\x7f\x31\x6a\x6d\x30\x94\xf0\xa3\xb9\xc7\x75\x50\xe8\x63\x96\x8c\xcf\xb4\xa9\xc8\x20\x5e\xdf\x56\x21\x03\xae\xbb\xd8\x72\x1d\x06\x39\xc3\x5a\x30\x2b\xe7\x98\x58\x72\xf3\xdc\xbc\x2c\x3e\x15\xf0\xa8\x83\x84\xb8\x15\x22\xdf\x7e\x52\x36\xc4\xad\xe7\x22\xc6\x65\xdd\x31\x00\xc4\x15\x4a\x92\x01\xfb\x39\x0a\xdd\x27\xe6\x70\x91\x61\x1a\x25\x5d\x6e\x36\x3c\xdf\x1e\xfb\xdd\xd6\x5c\x9c\x9e\xa5\x16\x64\x4c\x6a\x07\x00\x5c\xb8\x29\x6d\x2d\x42\x31\x90\x7a\x69\x4f\x34\xb7\x77\x23\xc8\x83\x1d\xb0\x3d\x09\x19\xa9\x98\xd6\xb5\x8f\x6a\xad\x6a\x2c\xee\x9d\xa6\xae\x62\x11\x31\xda\x1b\xe3\x64\x81\xf4\x67\xf4\x86\xfd\xb8\x43\x7c\xab\xb9\x2e\x8c\xa0\x5c\x0d\x70\x8f\x4e\x2f\x6f\xec\x37\xfd\x0f\x5d\x18\x87\xaa\xca\xce\xd3\x90\x5b\x58\xae\x58\xce\x1f\xfd\xf1\x0b\xd8\x0e\xb4\xce\x94\x2e\xe6\x17\xff\x3e\x55\x57\x49\x6a\x4e\x2d\x58\xe3\xe3\x99\xac\xfc\x3c\x62\x22\x4d\x36\x89\x74\xd8\x3a\x14\xee\x6a\x89\xda\xf3\x7d\x52\x98\x29\xd3\xf1\xbd\x91\x60\x96\x13\x33\xb8\x52\x4d\xe4\xd6\x2e\x1d\xe7\x98\x22\x0b\x44\xa9\x4d\xbb\xfc\x1d\x1d\xd8\x00\x92\x58\x1c\x91\x42\x9a\x04\x0b\x0f\xf6\xef\x4c\x9a\xd2\xec\x5e\xf2\x30\xe4\xa0\xbc\xa0\xb8\x23\x9b\x4c\x28\x90\x00\x50\x47\x05\x4b\xec\xf4\xdf\x16\x05\xe5\x4c\x96\x9b\x43\x83\x58\x08\x96\xfc\x6b\x99\xe9\xae\x72\x61\x4f\x2a\x0a\x88\x12\xb2\xdc\xd8\x0d\x35\x60\xc5\x9d\x91\xfa\x13\x8b\x28\xe5\xc8\xf2\x67\x0a\x02\xe4\xe3\x08\x1d\xa4\x59\x50\x17\x1e\x2f\x58\x0d\xe6\x27\x4c\x85\x7c\x8d\x7f\xbf\x61\x74\x36\x7c\x39\xa2\xf3\x3c\xd7\x8e\x3d\x0d\xe7\x1c\xf2\x7b\x8b\x18\x6d\xe8\x90\xd1\x61\xc5\xf3\x18\xad\xe5\xe1\xad\x02\x23\x83\x8d\xfe\xb5\x55\x25\x7b\x4c\xf4\x7a\x26\x6f\x95\x35\x38\x32\xa9\x5c\x4e\x8c\x11\x5c\x46\x1b\xf5\x71\x0d\x42\x00\x5a\xdd\xb6\x02\x8c\x10\x3e\x28\x86\x09\x40\xb4\x73\xa9\x62\x71\x18\xf9\xe3\xad\xf7\x55\x58\xff\x75\x2e\x30\xce\x0c\x4e\x8a\xae\x30\x5d\xa1\xf5\x40\xdb\x7c\x7d\xe2\xe1\x1c\xa2\x72\x4c\xad\xea\x71\x50\x66\x92\x90\x57\xd5\x9d\x6a\x50\x8a\xbd\x71\x06\x51\xc6\x95\xb1\x77\x99\x26\x0e\x9d\x84\xa8\x85\xe9\xb1\xd7\xd9\x8f\x7d\x8f\x60\xd8\x1d\xc0\x98\xb3\x55\xae\xca\xcc\x85\xe2\xdb\x30\x42\x9c\x06\xd2\x69\xa6\x72\xa9\x4e\xe8\x4e\x75\x9e\xc8\x7b\x5c\xf1\x2f\x35\x47\x98\x4c\x44\xc4\x15\x0a\x5c\x9b\xe1\x1f\xfa\x70\xc4\x12\x19\xa5\x25\x1c\x7c\xba\xe0\xd1\x3d\x26\x44\xe9\x32\xfa\x9a\x6f\xe6\xfb\x83\x34\x3b\x34\xa6\x32\x4d\xa9\x5a\x7f\x80\x02\xc9\x1c\x98\x80\x1e\x12\xce\x38\xbb\xbb\x9e\xb6\xd7\x7d\x9f\x34\x9d\x39\xed\xa7\x67\x75\x81\xc0\xff\xfd\x98\x0c\xc2\x5d\xd6\x28\x85\x45\x65\xa9\x3b\xe3\x52\x17\x61\x3d\x2e\xd2\xc2\x5c\x20\xe2\xeb\x16\xd3\xfe\xe0\x75\xba\xca\xca\xb9\x19\xa8\x74\x08\x40\xc0\xb4\xe2\xfb\xab\xbb\x49\xf0\xdd\xae\xa5\xf2\xfd\xd5\x1d\x0b\xea\x40\xb2\xe8\x54\x44\x85\x43\x1a\x8f\xd9\xa9\xcf\xe1\x50\xd7\xcc\x63\xf1\x90\x44\x18\x3a\x3b\x32\x5a\xd1\x4c\x02\x35\xba\xb9\xeb\x1c\x59\x3e\x4d\xf6\xfd\xd5\x1d\xb1\x70\x7a\xde\x1c\x4c\x47\x01\xd4\x18\xc3\x8e\x9d\x1a\x29\xb9\x54\xf2\x08\x29\x83\xf2\xd8\x7b\x3b\x46\x70\xb9\x8e\x78\x56\x94\xa4\x60\x3c\xbc\x1d\xdb\x39\xb9\xf6\x9e\x10\xd3\x2c\x35\x93\x46\x57\xc2\x18\x03\xc8\x9c\x66\x3a\xdd\x9c\xda\xda\xa0\x1e\x02\x0e\x80\x41\x3b\x48\xf8\x27\x2e\x72\x90\xcb\x2d\xe3\xf9\x22\x29\x72\x73\x0d\xc3\x8f\x47\xc8\x70\xb6\xb6\xd9\xb1\x70\xde\xbc\x66\x44\xc9\xee\x60\x82\x13\x59\xe8\x99\x0c\x02\x60\x5c\xb4\x31\x06\x2f\x24\x92\x01\x95\x30\x60\x6f\x2c\xb5\x69\x94\xaa\x32\xb6\xc7\x6a\xee\x92\xe7\x6d\x33\x54\xa2\x66\x12\x18\x4f\xcc\xd9\xaa\x8c\x1a\xea\xcf\xfe\x13\xf6\x51\x3e\x24\x71\xc2\x8f\x0a\xa1\x53\x7e\x54\xfc\xef\x8f\xa3\xda\x4f\xfc\xed\x97\x5f\x7e\xc4\x3c\x80\x5d\x74\x0e\x01\x6b\xd3\x81\x06\x9e\x76\x3f\x85\xe3\x3f\x34\xab\xf4\x80\x79\x3a\x4f\xee\x05\xfb\x88\xd3\xfd\x91\xc8\x8f\x9f\x36\x6d\x33\xd9\x36\x6f\xec\x29\xd3\x06\x54\xf4\xed\xf3\xc6\x76\x4c\xdb\xdb\xd5\xf8\x77\xab\x85\x99\xad\xaf\x56\xe3\xb7\x5f\xc2\x3f\x6b\x73\xb4\x6f\xf3\xba\xe8\x99\xb6\x66\xb7\x08\xa2\x96\x6d\xe9\x64\xd1\x4c\xee\x17\x46\x6c\x98\x2c\x82\x55\xdb\xb6\xf1\x79\x21\x0e\x8d\x9a\x45\x4e\xec\x01\xe8\xeb\x06\xd9\xf8\x4e\x8f\xe0\x81\x4c\xdd\x9e\x65\x1b\xe0\x9e\xdd\x94\xe1\x21\x00\x17\x1e\x0e\xe0\xf9\x81\xf7\xfb\xf5\xa7\xf6\xee\x9e\xee\xec\x6e\x66\x2a\xc4\x00\x66\x9a\x1b\xf3\x7a\xcf\x46\x56\x5e\xdd\xd5\xc6\x47\x8e\xd9\x08\x9b\x49\x70\x62\xba\xad\x0f\xd9\x45\x76\x39\xa2\xc9\x44\xbb\xb0\x41\xd7\x12\x0b\xad\x74\xf7\x6b\x5b\xef\x8a\xf6\x52\x98\xec\xd0\x79\xdd\x5a\x16\x7e\x60\x8a\x38\x10\x0a\x67\xae\xd4\xf3\x4d\x6f\x82\x75\x5f\xf1\x3b\xfa\xf8\x43\x83\x6e\xdd\xa9\x97\x1f\x20\xe2\xdb\x91\x6c\x6d\xb8\x34\xda\x9a\xad\xb5\xc3\xb1\x84\xb7\xfc\x27\x35\xe9\x2e\x7b\x52\x83\xb0\xc6\x7e\xc1\x5a\xb6\x2a\x5b\xca\x23\xfa\x56\x79\x8a\xbe\x83\x62\x0d\x66\x65\x9f\x3f\xd7\x8a\x39\x6f\x5e\xc6\x5c\xbb\x29\xcf\x57\x68\xf4\xd2\xa2\xd0\x6f\x5a\x66\xd8\xc7\xb1\x1d\x30\xc3\x56\xed\x9a\x0f\xe3\x0f\xb1\xfa\x18\x98\x54\x76\xed\x34\xd7\xca\x6a\xb2\x0d\x77\xd3\xb2\xf5\x87\x4c\xf2\x3e\xb8\x2e\x52\x39\x66\xa6\x02\x9e\xd7\x6e\x7e\xad\x03\x69\x66\x2f\xf8\xc6\xb1\xc7\x50\x69\x36\xe4\x17\x1b\xb7\x10\x90\x27\xa6\xbb\x0d\xbd\x38\x64\xfb\x36\x81\x98\x6e\xbb\x5a\x30\x93\x13\xfb\x8a\x67\xbb\xd6\x09\x5a\x59\x30\x1c\xb1\x5c\x60\x84\x0b\xd8\xcc\xb8\x1f\x75\xea\x5c\x47\x27\x86\x06\xfa\xd7\xba\x70\xa7\x45\xee\x4f\x23\xcf\x86\x1a\xf6\xa3\xa3\xe6\x7e\x6c\xc8\x3b\x25\xba\xed\x22\x15\x65\xc7\x72\x4f\xc5\x2a\xdf\xc7\x2c\xb9\xab\x52\x8b\xb8\x30\xbb\x78\x05\xbc\x66\x41\x1a\xe7\xae\xda\xfb\x5f\x93\xa8\x1b\x44\xc3\x8d\x18\x0a\x88\x4a\x48\xb7\x7e\x93\x78\xca\xf6\x5a\x65\x4d\x59\x51\x1c\x74\x16\x24\x7c\x33\xcf\x55\x77\x72\xe9\x1e\xe3\x65\x8b\xa8\x78\x0c\xd6\x98\x6c\x72\xcb\x7e\x29\x79\x8a\x47\xab\xa4\xcd\x60\x9b\x0d\xc6\x97\xaf\x7e\xcf\x26\x70\xf6\xb1\x0f\x20\x95\x01\x32\x06\xa5\x15\x8a\x25\x9b\x4c\xe4\x5a\x49\xde\x99\x65\xfd\xfe\x1b\x3d\xa7\x4c\xb1\xe6\x62\xae\xca\x66\x56\xd8\x01\x3d\x69\x29\x2d\xec\x14\x67\xf7\xe5\x42\xe4\x52\x60\x26\x79\x78\x8f\xd9\xf7\x7a\x35\x57\xf1\xb2\x58\x7f\x35\x8f\xd2\xa4\x77\xfa\x5a\x88\x57\x9d\x98\xcf\x4e\xf1\xab\x5d\x1d\xa8\x94\x5f\x69\xba\x64\xf8\x8c\xe1\xb3\x31\xfb\x8e\x47\xf7\x42\xc6\x2c\x4b\xcb\x55\x42\xb4\x37\x78\xd9\x48\xaa\x66\x85\x6a\xc7\x50\xb3\xc1\xf2\xcd\x21\x38\x93\x1b\x7e\x8f\x29\x65\x48\x85\x35\xf7\x96\x2e\xd2\x44\x67\xa8\x99\x27\xcd\xb5\xbb\x77\xb6\xdc\x69\xdc\x2c\xa6\xbe\xf6\x74\x89\xd1\x7a\x8f\x6b\x45\x18\xa7\x8a\x9d\x68\xc0\xc6\x75\xab\xb5\xc1\x4e\x66\x19\x64\xb4\x88\xca\xdc\xbc\x41\x8d\xc1\xdd\x0b\x0e\x44\x48\x8b\x54\x4a\xc6\x81\xe0\xec\x95\x66\x65\x66\x85\x08\x78\xb6\x52\xc0\x19\xe1\x14\x98\x07\x59\x12\xdd\x23\xb2\x15\x62\x37\x98\xeb\x5e\x23\xf5\x34\x13\x1e\x62\xd9\x26\x1a\x96\x48\xef\x73\x18\x6a\xa6\x91\x55\x69\xcf\x3a\xed\x19\x97\x52\xac\x85\x9c\x3f\x21\xb9\x4f\xff\x49\xab\xc4\xa0\x90\x12\xee\x3c\x84\x6e\x08\x4b\x99\x10\x99\xb7\xbf\xe1\xbb\xcc\x15\xc9\xb2\xa6\xc4\x27\x9a\x69\x5e\x24\xda\xc8\xb2\xd6\x11\xf7\xa4\x4a\x87\x8c\x3a\x1f\xc6\xe4\xd4\xc2\xe2\x54\x1b\x0b\x17\xe7\x36\x66\xef\xc1\xaf\x12\xdc\x4b\x94\xe3\x44\xea\x12\x58\xc5\x5a\x74\x92\x03\x3f\x07\x40\xd4\xf6\x20\x78\x7f\xa7\xbb\xcc\xc5\x34\x8e\xd9\xc4\xfb\xb3\x91\x15\x0a\x3d\xd5\x7b\x7a\x24\x52\x2d\x9e\xb2\xf8\x7a\xb9\x7e\x00\xf3\x05\x0b\x88\x81\x1e\xa7\xcd\xef\x9e\x25\xde\x35\xf3\x11\x68\x03\xf8\xbd\x90\xbb\xec\xfb\xfd\x5b\x88\x0e\x98\x9d\x06\x09\xe7\xd9\x51\xe8\xdc\x79\x4a\x03\xfb\x6f\x3b\x4f\xc4\x95\x2c\x8f\xcd\x90\x9b\x4b\x50\x74\x4f\xc1\x8a\xe8\xdf\x23\x2a\xaf\xc7\xb5\xd2\xe1\x3e\xb3\xf3\x87\xf7\xe8\xbc\x74\x39\xbb\x20\xd8\xd3\x0d\x30\xa2\x3c\xa5\x0a\x99\xbe\xa0\xd5\x6e\x93\xa2\x51\xc9\xcd\x37\xb3\x22\x14\x86\x01\x70\x11\xb6\xa8\x96\xdd\x2c\xb3\xf2\xb9\x72\xc2\xec\xa7\xd7\x6e\x8e\x70\xa3\x41\x3f\x7e\xa3\x2f\xa1\xbe\xe7\x20\xa3\x41\x2b\xe3\xf3\x07\x82\x3d\xd1\x05\xee\x20\xce\xd6\xfa\xa9\x20\x48\x84\x0e\xca\x4c\xc5\xcc\xaf\xf7\xae\x48\x1b\x29\x15\x42\x5c\x7f\x83\xdd\x0a\x1a\xd7\xbb\x6f\xfb\xb6\xda\x87\x00\x27\xc7\x16\x65\x92\xc6\xc8\x52\x18\x68\xa8\xca\xaa\x40\x90\x1e\x09\xf4\x91\x44\xbb\x03\xae\x65\xd1\xff\xf8\x8d\xbe\x52\xf1\x21\x0b\x6b\x38\x13\x6d\x73\x5d\xf7\x08\xa3\xd1\x21\x96\x69\xb3\x7f\x24\x32\xd5\x1d\x00\x11\xcf\x75\x35\x1f\xf0\x8e\x06\x03\xe2\x6d\x51\x2e\x6f\x20\xf9\x68\x17\x29\x53\x90\x97\xcf\x46\x59\x9b\x79\x36\xd5\xb8\x98\xbf\xae\x49\x21\x00\x95\xd7\x47\x38\xfb\xc3\xcd\xe5\xc5\xd1\x86\xe7\x7a\xcd\x81\xf4\xc2\x96\x35\xb2\xf9\xdc\xd1\x5a\x60\x81\x1d\x89\x9c\xc9\x23\xb6\x52\x23\x84\x11\x9d\xb0\x75\x51\x64\xfa\xe4\xf8\x78\x95\x14\xeb\x72\x31\x8e\xd4\xe6\xd8\x0f\xcd\x31\xcf\x92\xe3\x45\xaa\x16\xc7\xb9\x80\x40\x92\xa3\xb7\xe3\xaf\xde\xc2\xcc\x1c\x3f\xbc\x3d\x06\xf0\xc8\x78\xa5\xfe\xe5\xfc\xab\x7f\xfb\xfa\xf7\xa6\xe0\x6c\x5b\xac\x95\x3c\x21\x8c\xd2\xce\xb2\x8f\xf0\x9a\x70\x8c\x9f\xd4\x6a\xf9\xb7\xf1\x97\x61\x33\xe8\xd5\x8d\x8a\x45\xaa\x8f\x1f\xde\xce\xed\xc4\x8c\xb3\x8e\x8c\x19\xff\x08\xbd\xf8\x0c\xa1\x17\xf7\x49\xf1\x8f\xd0\x8b\x5f\x35\xf4\xa2\xbf\xca\xe5\x64\x0c\x70\x64\x7b\xf9\x68\x7e\x77\x32\xd2\x7a\x22\xf6\xc9\xa1\x96\xc3\x21\x0c\x8c\x3b\xe0\x88\x18\x98\xc0\xae\xd6\x5d\x77\x97\xe9\xb0\x38\x0e\xcd\x53\xd3\x79\xbb\x18\xc4\x03\x02\x40\xc7\x24\x02\x5b\x21\x5a\x48\x33\x9e\xb4\x05\x54\x04\x79\x7b\x0e\x18\x42\xcc\x23\xd2\x4e\x7a\xd6\x27\xdd\x16\x65\x9c\x12\xf1\xfc\x59\x12\x6f\xb5\xd6\x81\x98\xd0\xc1\xe5\x37\xf4\xee\x1e\xaa\x31\xa1\xa4\x0f\x1a\xd1\x17\x4c\x91\xf2\xdc\xb9\x51\xa8\xbb\x4f\xcc\x8b\x92\xe2\xd7\x16\xd3\xad\x1e\x6d\x3e\x94\xe7\xc8\x22\xe2\xf1\xea\xfd\x32\x88\xe0\x22\x85\xb6\xd8\x76\x75\x34\x63\xcd\xf5\xd3\x82\x03\x26\x48\x41\xec\x7c\xc1\x88\xac\x4e\xb4\xad\xd0\x9e\xc6\x96\x7d\xc9\x1c\xee\x96\xe4\x31\x2b\xf3\x4c\x69\xa1\xc7\xec\xbd\xca\x91\xd6\x8b\x38\x77\x7c\xc0\xc3\xf5\xfb\x53\xf6\xf6\x9b\x7f\xfb\x7a\x26\x5f\xb7\x28\x43\x70\x88\xaa\x7c\x45\xf1\x17\xa0\x02\x6d\xb8\x2e\x44\x7e\x9c\x2f\xa3\x63\x3c\x3a\x8e\xcd\xf7\x47\x54\xe9\x91\x5a\x1e\xb9\x14\x09\x47\xc4\x16\x3f\xde\xc4\x6f\xba\x90\x89\xed\x0a\xf7\xaf\x76\xe9\x99\x74\x28\xe6\x6d\xf3\xbb\x5f\xb0\x56\xb6\x10\x2a\x22\xa4\x85\x68\xd0\x58\x90\x8a\x51\x2d\x5d\x52\x1f\x8c\xf3\xc5\xfc\x5f\x6a\xd9\xf2\x8f\xef\x52\xb5\xd0\x6f\x1c\x01\x2c\xd7\xb6\x0e\xcf\xc8\xd8\x26\xb7\x1b\x7b\xee\x90\xdb\x37\x0d\xc5\x4b\x9a\xd5\xac\x4c\x0c\xa7\x6d\xc8\xc0\xb7\x0b\x0d\xaf\x0b\x22\x1f\x15\xcf\x55\x29\x6d\xd6\x0c\x25\x85\x5a\x02\xcc\x09\xae\x49\x16\xa5\x09\x9e\x05\xc0\xfe\x39\xee\xa9\x5c\x64\xa8\x7d\x80\x0f\xac\x7b\xb8\x0f\xcc\x1c\xb3\x6f\x9c\x5f\x22\x73\xcc\xa1\xe3\x4e\x82\xf1\x57\x1a\xf0\x43\x43\x29\x70\x2b\x0d\x41\x20\x99\xf7\xf7\xa2\x0d\x9c\x1c\xf0\x99\xab\x7d\x92\x86\x8c\xe7\xa0\xc1\x8b\xa3\x42\x1d\x01\x69\x1f\x50\xc1\x61\x2e\xa7\x2e\x08\x12\xa0\x34\x86\x1c\xf7\xe6\xfd\x1e\xed\xc4\x5b\xdb\xa7\xa0\xa1\xa4\xb0\x6a\x64\x40\x27\x48\x7a\x22\xa5\xc8\xc9\x03\xbc\x57\x33\x18\x88\xe1\x08\xa7\x72\x37\x22\xdd\x9b\x29\xc2\x3c\x3b\x2e\x1e\x91\x07\x42\x60\xcc\xe0\x6a\xb2\x56\x1b\x65\x74\x5d\x55\xea\xe0\x21\x5e\x6d\x41\x99\xe8\x54\xcc\x37\x3c\x43\x7d\xf5\xd7\xeb\x8d\xd9\x5a\xe6\x11\x9a\xa0\xc3\x97\x06\xa5\x2e\x5b\x54\x93\x35\xed\x69\xbf\xcb\xb2\xb3\x7b\xdd\x00\x42\x68\x03\x2e\xbf\x35\x7f\x10\x36\x77\x46\xf2\x37\x73\xe9\x35\x4b\xca\x5d\x23\x9d\x06\x82\x80\x36\xe4\xa2\x0e\xe1\x9b\xf6\xd4\xed\x64\x8b\x29\x37\x03\xe7\xc0\x05\x59\xf5\x99\x00\x2e\x31\xec\xc8\xc6\x1b\x1d\xb5\x06\x1c\x75\xed\x4b\xb0\xab\x95\xe6\x66\x62\xf9\xd2\x87\x35\xf5\xc6\x15\x40\xd4\xe8\xcd\x76\x7b\xba\x49\x88\x4e\xc3\x31\x46\x81\x60\x75\x8b\x2e\x90\xf3\xf0\xcd\x08\x89\xeb\x86\x8c\x1d\x54\x82\x8b\xb3\x31\x82\xc1\x5e\xe8\x1a\xc0\x61\xf6\xd7\x5d\xe6\xcc\x36\x7c\x3b\x32\xf4\xfa\xe8\x65\xd3\xca\x86\x65\xc1\x7d\xf8\xe0\x93\x23\x03\xfc\x77\x51\xc2\xf3\x8b\xcb\xdb\x10\xd9\x94\x60\x6f\x8f\xa2\xb5\x88\xee\xc1\x9a\x86\x47\x1e\x6e\x06\x0a\xc6\x07\xb8\xb5\x4f\xa9\x5a\x28\x0b\x94\xd9\xba\x2c\x33\x2e\xd3\x92\xca\x59\x9c\xe8\x2c\xe5\x5b\x80\x24\x48\x8c\x53\xf4\x70\x06\x17\xe0\x6b\x44\xc1\x3e\x67\x42\xff\x99\x36\xb3\x32\xf1\xdf\x0d\x1d\x4b\x0f\x3c\xf7\x83\xd9\x94\x07\x4c\x8b\x0d\x97\x45\x12\xcd\xe4\x46\x70\x19\x22\x58\x09\x92\x61\x06\x39\x56\x82\xf2\x25\x2c\x97\x22\x2a\x3c\xe1\x32\x5c\x42\xdc\x48\xed\xdb\x83\xc3\xfa\xee\x76\xde\xce\xae\xff\x60\xd3\x3e\x27\x1b\xc0\x47\xd3\x1a\xa2\xa3\xf1\x89\xae\x46\x48\xc1\x4b\x47\xae\xbd\xd4\xc2\x5f\x76\x4d\xb1\x85\x28\x1e\x05\xf0\x09\x11\x01\x42\x9b\x8e\x7f\x70\x1a\xa6\x43\x82\x07\x27\x8e\x7f\x90\xe8\xe5\x1b\x04\xc2\xb4\xc1\x42\xe0\xa5\x23\x3e\x94\x35\x06\xc3\x57\x44\xc9\x00\xa6\xc0\x57\x64\xd4\x7c\x05\xc7\xb4\xb9\x05\xe7\x0f\x22\x9e\xc9\x2a\xad\x24\xe9\x8c\x7e\xc3\x31\x9f\x60\xf4\x79\xa4\x8d\x1d\xe3\x5e\x8e\x9e\x33\xa0\xd2\xf2\x24\xda\x8e\x74\x60\x47\xc2\x53\xec\xf4\x4b\xde\xaa\x6c\xae\xe5\xbe\x97\x61\x9f\x83\x94\x12\x08\x52\xbe\xe1\x0a\xfa\xc7\x2d\x4a\x47\x9a\x87\x8c\xba\x0e\x2c\x4e\x46\xeb\x86\x19\xbc\xad\x8c\x99\xb4\x6c\x32\xcb\x32\x45\x96\xf4\xae\x98\x1d\xe2\xd0\xb4\x91\xaf\xbf\x5e\x04\xb4\x33\xba\xb2\x20\x67\xab\x03\xe9\x04\xc0\x7d\x94\x75\x76\xd5\x0b\xa9\x4b\x50\x29\x6c\xba\x46\xf0\x4a\xac\x44\x01\xa7\x79\x5c\xa6\x08\xd8\x04\x77\x0a\xf0\x71\xf2\x34\x65\x49\xa1\x67\xd2\xd1\x87\x62\x60\x0e\x48\x58\xeb\x6f\x89\xe9\xca\x05\x55\x40\xb1\xf0\x98\x4b\xd0\xc3\x92\x28\x29\x1a\xe1\x0e\xdb\x30\xc5\x59\x96\x09\x8e\xb1\xfc\x38\x6d\x33\x19\xde\xb9\xea\x93\x40\x81\xef\x90\x15\xff\x39\x62\xd0\x77\x18\x6e\x4d\x15\x4f\x42\xd9\x60\xef\xcc\x85\xcb\x66\x2f\xc7\xd6\x12\x7f\x10\xa1\x92\xcd\xad\xa6\xd0\xd6\x81\xe2\xef\xad\x10\xd3\x13\x95\x29\xcf\x31\x98\x69\x59\xa6\x2c\x59\x06\x89\xd8\x61\x0e\x90\x3c\xd2\x4c\x57\xa4\xe0\xac\xb6\x2e\x14\xcd\x37\x22\xe0\xad\x21\xf3\x4e\x1a\x20\x7e\x30\x23\x06\x42\x49\x4c\x59\x6f\xc6\xec\x9d\xa7\xc7\xc5\x19\x86\x3d\x11\x90\x4e\x27\x1a\xc5\x9f\x6b\x6f\x40\xb9\x00\xbd\x33\x4d\x54\xd2\xec\x48\xb7\xeb\x3a\x66\x10\x92\xd7\x0c\x83\x13\xd9\xd4\x45\xbb\x11\xf6\xad\x94\x2b\xe6\xd3\x1a\xc8\xc8\x6d\x88\x8e\x06\xda\x53\x61\x60\x23\x43\xc2\xee\x27\x34\xd4\x11\xa2\xb7\x34\x76\xb3\x23\xef\x3b\xcc\xe3\xc0\xa6\x06\x59\x14\x87\x37\x34\x58\x39\x21\x78\xac\xcf\xc8\xae\x78\x31\x14\x49\xe6\x02\xd7\x86\x37\xb4\x15\xb5\xd7\xa7\x99\x20\x3d\x06\xb6\x73\x62\xbe\x79\x62\x43\x75\xb9\x38\x42\x01\xed\xf2\x21\x81\xa8\x10\x3c\x5a\x57\x39\x24\x2c\xd3\xb3\xeb\x01\xc4\x10\xc2\x7e\x1c\x4e\x7f\x31\xf1\x6b\x0e\x12\x49\x32\xd3\xfc\x31\xbb\x94\x02\x71\x9e\x6a\x19\x1c\x2a\xd4\x00\xca\x38\x09\xc9\x76\x9c\x94\x5b\x98\x86\xc9\x7b\x4b\xad\x65\xb6\xdc\x88\x71\x5f\x3a\x48\x3d\x5c\x36\x28\x45\x3a\x74\xc9\xb6\xd4\x54\x07\xa8\x97\xfd\x08\x2a\xda\xef\xfc\x01\x5c\x7a\xb8\x04\x68\xeb\x47\xff\x69\xd9\x19\xf7\xe0\x6e\x71\x36\xd8\xa1\xba\x6e\x18\x82\x9f\xf7\x8d\xef\xd5\xba\x8a\x99\x1d\x90\x20\xf2\xee\xe2\xdd\xd9\xfb\xe9\x45\x35\xff\xe2\x1f\xef\xce\xee\xaa\xbf\x5c\xdf\x5d\x5c\x4c\x2f\xbe\x0f\x7f\xba\xb9\x3b\x3d\x3d\x3b\x7b\x57\x7d\xef\xfd\x64\x7a\x5e\x7b\xcf\xfc\x54\x7d\x69\xf2\xdd\xe5\x75\x2d\x8f\x64\x4b\x12\xc8\xdb\xe9\x87\xb3\x77\xf3\xcb\xbb\x4a\x2a\xca\x77\xff\x71\x31\xf9\x30\x3d\x9d\xb7\xb4\xe7\xfa\xec\xf4\xf2\xa7\xb3\xeb\x3d\x09\x23\x7d\x7f\x5b\x87\xf4\x39\xb0\x85\x4f\xce\x2b\x3a\x61\xcb\x3c\x11\x32\x4e\xb7\x18\x29\x62\x6f\xb6\x35\xe8\x77\x78\xf6\x26\x1b\xa1\xca\x43\x02\x3e\x6e\xd7\x82\xa9\x07\x91\x03\x0b\x18\x96\x46\x94\x21\x9e\x71\xa0\x5e\x6b\x2e\x8a\xbc\xe9\x15\xd8\x19\x55\x57\xe4\x5b\x17\xb7\xb9\xab\x39\x9e\x41\x92\x2a\x61\x99\xc8\x77\xb5\x05\x34\xa3\xbc\xcc\x8a\x64\xd1\x1d\xc2\x33\x38\xf0\xbe\xef\xdd\x1b\xf9\x8e\xdb\xc9\xe1\x2e\xda\x05\x63\x25\x92\xe5\x10\x98\x3c\x94\xf0\xd4\x74\xb9\xee\x6b\x0b\x2d\xce\xca\x45\x9a\x44\x2c\x89\xeb\xf6\x14\xe2\xc3\x00\x93\x71\x9d\x16\x3d\x13\x39\xa8\xaa\xe6\x06\x90\xe5\xe2\x88\x97\xc5\x1a\x29\x3c\x29\x70\x86\x92\xd8\xcc\xa4\x16\x51\x2e\xd0\x17\x20\x34\x18\x69\x31\x1d\x6a\x50\x13\x34\x86\x18\x6c\x62\x20\xcb\x1b\x07\x29\x6a\x3a\x7c\x04\xf8\x25\x96\x3e\xc0\x48\x8a\xef\xef\x1c\x1a\x6a\x71\x82\x09\x57\x03\x58\x18\x9c\xf0\xf8\xd0\x26\x55\x35\xfd\x36\x92\xda\x25\x15\xc5\x49\xb6\x91\x46\xed\xdd\xd8\xb7\xc6\xc2\x85\x52\x0d\xbd\xa1\xd2\xe9\xd1\x69\x2e\xe0\x10\x21\x48\x83\xb5\x5f\x00\xae\x89\x22\x93\x20\x20\xc9\x5c\xd5\x16\x62\xcd\xd3\x25\x6a\x1c\x66\x6a\xda\x59\x45\xb0\xfc\x5b\x75\x2f\xe4\x35\x4e\xd8\xaf\x22\x0e\x25\xde\x7c\x3c\xa7\x91\xb3\x08\x79\x13\xa6\x69\xa3\x5d\x55\x36\x2e\x14\x94\xa9\x02\xef\x09\xc1\x63\x0c\x40\xf2\x19\x0b\x6c\x48\xe9\x72\x99\x7c\x32\x05\xce\xa4\x68\xe5\x6c\x07\x30\x99\x65\x97\x74\x72\x19\x80\x73\x48\xd1\x77\x2f\x24\xe4\x53\x05\x72\xc0\xfd\x6b\x76\x98\xfd\xbc\x39\x17\x3b\x0c\xfa\x60\xf3\x4b\x2a\x69\x66\x43\x2f\x8f\x1d\xa7\x02\x23\xc2\x1c\x07\x07\xac\x9b\xd3\xf3\xe9\xd9\xc5\xed\xfc\xf4\xfa\xec\xdd\xd9\xc5\xed\x74\x72\x7e\xd3\x77\xfb\x3d\x47\x14\x5f\x6d\xf7\xd5\x83\xd9\x9c\x84\x38\xa6\x9d\xe7\x43\xd9\x5d\xa7\xfc\xb6\x83\x29\xd9\xdf\xfa\x24\xce\xe6\x71\xa2\x23\x73\xfc\x6d\xe7\x42\xc6\x90\xec\xe2\x49\x4b\xb5\xbd\xa8\x7a\x2f\xdc\x1b\xcc\xbd\x61\x25\x08\x9e\x76\x0f\x76\x45\xbb\xe7\x00\xc9\x04\x33\x64\x2e\xcc\xe6\x8f\x2b\x1c\x23\xe3\xfd\x19\xce\x4c\x71\x87\xf5\xad\x5a\x44\xbd\x4f\xd8\xde\x44\xeb\x12\xa8\x4c\xec\x6b\x80\x47\xed\x18\x15\x62\x20\x0e\x33\x6e\x24\x41\x16\x7a\x96\xe8\x99\xdc\x70\x19\xf3\x42\xe5\xdb\x8e\x2e\xf6\x13\x9e\xe1\xb6\xa9\x8a\xd0\xf0\xc8\x96\x42\xc4\x76\x16\xf0\x55\x2e\xeb\x4b\x09\xf3\x72\xdc\x5e\xfe\x78\x76\x71\x33\x3f\xbb\xf8\x69\x7e\x75\x7d\xf6\x7e\xfa\x27\x07\x93\xcd\xb8\x6e\x4b\x2e\x9d\xe5\xc2\x48\x17\x4b\x73\xd6\x2a\x5f\x30\x65\xb3\x2d\x87\xd2\x74\x26\xcb\x99\xb4\x92\x25\xf7\xc5\xaf\x73\x55\xae\xd6\xed\x05\xd5\x5b\x79\x35\xb9\xfd\xe1\x49\xcd\x04\x12\x4a\xcc\xeb\x8a\xbb\xad\x09\x17\x4e\x96\x24\xf7\x10\x63\x5c\x6b\x1e\x50\xa9\xc2\xab\x6d\x5e\x86\x0e\x89\xf6\xa4\xdb\x4b\x53\x68\xed\x54\xfe\x5b\x5e\xef\x5a\x40\xb7\x81\xdc\xac\x1c\x23\x00\x5f\xc7\xe4\xe0\x8d\xd2\x4e\x5a\x7e\xab\x9c\x60\x5f\x1d\xa5\x62\xb5\x12\x31\x2e\xaf\x7a\xc1\x64\x83\x23\x11\x18\xf9\x73\xbd\x6d\x14\x29\x81\xef\x01\x07\xb3\xc3\x7b\xf5\x17\xe0\x57\xee\x93\x76\x59\x71\x4a\x44\x52\xe0\xdf\x2c\xb8\xec\x70\x24\xef\x8f\x07\x6b\x2f\xfe\x32\x67\x2e\x54\x8f\x0c\x26\xd6\x65\xe0\xf7\x41\x17\xe0\xe5\x70\x7c\xab\x6b\xc7\xb5\xc8\x52\x1e\x09\x17\xe0\x82\x0c\xc0\x70\xaf\x7f\x8a\x03\x8f\xd2\x24\x4b\xb2\xb7\x04\xe9\x93\x7d\x66\xb8\xb6\x25\x00\x96\xdb\x6b\x2b\x8f\x5f\xde\xb4\xb2\xf3\xe2\x46\xbc\x9f\x60\x68\xc6\x3c\x95\x14\x17\x81\xb6\x28\x48\xfe\xda\x89\x59\x1f\xb4\x1c\x6a\x35\xff\x44\x13\x8f\x77\xe6\xaa\xa1\x9b\x5b\x66\x5d\xb7\x3c\x9c\xea\xb8\xcb\x5e\x58\x14\xf9\x4e\x32\xee\xe7\x70\x47\x5c\xe5\x6a\x93\x68\x31\x29\x8a\x3c\x59\x94\x61\x36\xe2\x81\x80\xb9\xca\xe5\xc4\x77\x38\xcb\x55\x5c\x46\x96\x3e\x0b\x7a\xeb\x61\x3f\x64\xe5\xb3\x5a\x47\xcc\x8e\xcc\xea\xa3\x9b\x9b\x88\x8f\x20\xda\x03\xf9\xdd\xda\x7c\x6c\x56\x30\x76\xd8\xfe\xae\xec\x51\xfe\xcc\x31\xa3\xdd\x83\x69\xd7\x40\xbf\x30\x70\x66\x5f\x07\x0d\xb8\x03\x35\x45\xcb\x65\xc1\xd1\x81\x5e\xd5\x51\xba\xd8\x72\xdc\x51\x33\x0c\xdc\xd5\x0f\x1b\x53\x0d\xa7\x42\xbd\x61\xcd\x35\xaa\xf3\x45\xb4\xae\x36\x1c\x7a\x53\x65\x0d\xae\x37\xd7\xa9\xc7\x87\x99\x4d\x7a\xb9\xd1\x46\x68\x68\x48\xc8\xb0\x5d\xc9\x00\xeb\xd2\x59\x77\xda\xef\x31\xe4\x62\xfe\x4b\x29\x86\x64\x75\xb6\xa1\x1a\x7f\x84\xcf\xf6\x02\x52\x12\xc4\x6e\x39\xdb\x6b\x91\x6c\x8c\x06\xc4\xf3\x68\xcd\x16\x5c\x13\x1d\x61\xc8\x96\x80\xe9\xe7\x59\x62\xbe\xe2\x51\x41\xe9\x78\x6d\xb5\x36\x25\xef\xad\x85\x42\x1a\xb5\xd6\x5b\x3d\xda\x96\xdb\xbe\x01\x18\x62\xbd\xb6\xcd\x98\xbe\x1b\xe4\x43\x08\xf5\x70\x77\x4f\xc6\x23\x16\x4e\xa7\x94\x97\x32\x5a\xb3\x2c\xe5\x48\x28\xb1\xe6\x1a\x05\x85\x45\xe8\xf0\x45\x92\x26\x05\xf0\x84\xa1\xe3\xb8\xb6\x6e\xcd\xe5\x99\xe7\xf7\x36\xdd\x02\xf7\xa4\x70\xbb\x44\xc9\x81\x48\x68\xd7\xab\xcf\x8a\x85\xf6\x82\x30\x14\xee\xfd\x36\x3b\xe1\xa0\xfd\x74\x98\xe3\x0d\x36\xbb\xef\xcb\x30\xef\x10\x95\x78\x55\xff\xbc\x36\xde\x48\x40\x79\x10\x49\xf0\xce\xb8\xac\x17\x01\x9d\xfb\xa8\xb2\xdd\xc7\x68\xb3\xc3\x2d\x4a\xf0\x70\xe0\x13\x25\x4e\x1a\xa0\xc4\xd4\xd3\x2a\xb5\xee\xfb\x65\xaa\x78\xb1\x3b\xca\x0d\xb3\x24\x75\x95\x1d\xab\x72\xd1\x95\x97\x03\x5b\xf5\xf4\x18\x3a\x2b\xfe\x9f\xcb\xe6\x1e\x9e\xa3\xbc\x10\x46\xfa\x3e\x6d\x40\xcd\xd7\x47\xf0\x79\x7b\xe1\x14\xc5\x3c\x98\x91\xc2\x2d\x03\x9f\xab\xcf\xe9\xfe\x00\x49\x6d\xd9\x4e\x75\x25\xef\xa0\x98\xc7\xc3\xe6\x2b\x91\x7b\x96\xd2\xfe\xf4\x5f\x5f\x7f\xd5\x27\x1a\xf1\x8f\x25\x37\x07\xc0\xe5\xf2\x06\x09\xc2\x0e\xe9\x74\x91\x34\xb7\x55\xbb\x18\xa8\xd7\x7a\x5b\xf5\xd2\x86\x0b\xbf\x37\xdb\x41\x5b\x6f\x6e\xcc\xd7\xfd\xc5\xee\xb4\x62\x8d\xcd\xf2\x44\x01\x51\x96\x5a\x56\x74\x8d\x16\x49\xdc\x5a\xef\x01\x23\xf9\x4b\x29\x4a\x61\x16\xd0\xa2\x8c\x57\x4d\x67\xc9\x80\x0b\x97\xef\xd2\x5a\x3d\xb2\x4d\x19\xad\x99\x2d\x9c\xc5\x22\xe5\xdb\xaa\x1a\x65\xee\x1a\x85\x02\x0a\xe5\x41\x7c\x81\x01\xf1\x7d\x54\xea\x42\x6d\x00\xa7\xee\xcb\xcd\x4b\x09\xbb\x9c\x71\xbb\xbb\xda\x0e\xb4\x0a\xa1\xe7\x13\x3d\xe4\x37\x57\x67\xa7\xd3\xf7\xd3\x9a\x7b\x7a\x72\xf3\x63\xf8\xf7\xcf\x97\xd7\x3f\xbe\x3f\xbf\xfc\x39\xfc\xed\x7c\x72\x77\x71\xfa\xc3\xfc\xea\x7c\x72\x51\x71\x62\x4f\x6e\x27\x37\x67\xb7\x7b\xfc\xd4\xcd\x5a\xbb\x27\x82\x07\x7c\xa3\x16\x39\x6f\x93\xe9\x58\x73\x15\xd5\x7a\xc2\x26\x96\x7d\xb5\xc2\x0f\x6c\xb1\x06\x00\x4e\x4a\x11\x63\x89\x90\x84\x77\xbc\xe0\xa7\xbc\xe0\xa9\x5a\x8d\xd9\x84\x51\x5c\x01\xc6\x8b\x68\xa3\x12\x12\x35\xa5\x99\x1d\x2c\xc2\xe8\x85\x91\x37\x05\xf9\x6c\xe1\x6a\x49\xa4\xb0\xa9\x08\xf3\x4a\xd9\x20\xcf\x99\x3c\x7b\x10\xb2\x28\x41\xd1\xe6\x69\xca\xa8\x5a\xfb\x42\xc0\x0a\x62\x5b\xa9\x93\x4d\x92\xf2\xdc\x27\x76\xbe\xa4\xb2\xe0\xb2\x6b\xdb\xea\x58\xe9\x9a\x94\x13\xd6\x1e\x70\x37\x65\xd0\xee\xd3\xf3\x29\x28\xba\x51\x61\xb3\x16\xda\xca\x67\x12\x49\x47\xa9\xc6\x0d\x87\x18\xa6\x42\x91\x81\x1e\xab\xa7\x97\xbb\x17\xe2\x41\x8a\x95\x75\x65\xbd\x94\x61\xc2\x35\xd2\xfe\xe3\x4c\x16\xf9\xb6\xb7\xf6\x7a\x0b\x8c\x0e\x1a\xee\x75\x04\x89\xac\x26\x7b\x46\xfb\x29\xb3\xa5\x5f\x80\x4a\x6b\xf1\xba\xe4\xde\x73\x5e\x3c\x84\x47\x75\x5c\x89\x52\x73\xf2\xfe\x56\xc7\x21\x64\x01\x83\x51\x58\xa8\x52\xc6\x9a\xc0\x9b\x9b\x44\x1e\x6f\xf8\xa7\x37\xb6\xa7\x48\x62\xe3\x52\xae\x01\x63\xa2\x48\xcd\x7d\x70\x6b\x84\xdc\xee\xe1\x9a\xc9\x1d\xe3\xb5\xff\x4e\x60\x25\x2b\x98\x0c\xbc\x7d\x07\x61\xa8\x0f\x62\xdb\x36\x7f\x8d\xb4\x99\x2c\xcc\xfd\x00\x85\x64\xb9\x30\x2f\x3a\x8c\x6b\x8a\xd0\x65\xf7\x37\xc4\xb2\x54\x52\x7b\xb7\xcb\xee\x10\x36\x72\xd0\xb6\x69\x05\xac\xf4\x57\x7c\x7a\xe7\x3d\xa5\x9a\xcc\x9c\x21\x7c\xc5\x7a\x4e\x28\x76\x87\xfc\xf2\x66\xb2\xfe\xaa\x16\x6c\x09\x81\x6c\x64\x27\xc8\x05\x78\xca\x60\x2a\x6c\xa2\x1e\xe0\xd5\x6b\x60\x62\xec\x12\x48\x85\x06\xff\x91\x34\x97\x6a\xf1\x4b\x49\x10\x80\xb7\x5f\x0e\x3b\x67\x0b\xcc\xf6\x80\xf4\xde\xf5\x3c\x08\xee\x2c\x87\x76\x95\x32\x69\x23\xdb\xbc\x2e\xa5\x39\x8a\x9f\x03\x3d\xd5\xdf\x3d\x5e\xab\x94\xfe\xdc\x1b\x6b\x66\x3d\x3b\x39\xbe\xff\x62\xcc\xcd\x3f\xd5\x08\x9b\xa9\x3a\x88\x6c\xa0\xd2\xc3\x03\x6d\xc1\xa3\xfb\x47\x9e\xc7\x68\xfe\x07\x38\xd3\x98\xfd\xa0\x1e\xc5\x83\xc8\x47\x2c\x12\x79\xc1\x89\xaf\x50\x03\x9e\x03\x36\x14\x95\x33\x93\x10\xe8\x83\xe4\x8f\x52\x97\xb9\x60\x45\xb2\x5a\x17\x22\x0f\xd1\x38\x2a\x37\xe2\xa8\x40\xaa\xda\x4c\x44\x44\xc8\xd6\x31\x00\xcb\x94\x3f\x34\x09\x18\x9f\xc2\x24\xc3\xa6\x2e\x5a\xd9\xba\xbb\x6d\xf2\xb3\x5d\xf8\x29\x1a\x30\x12\x9a\x48\xa1\x35\x62\x2b\x95\x72\xb9\x1a\x8f\xc7\x90\xe8\xe3\xcd\xa0\x85\x4e\x05\x86\x0e\x74\x87\xd2\x4f\x95\xd2\x22\xdd\x3a\x12\x31\x17\x47\x05\xc0\xdd\x4f\x85\x90\x3a\x41\xc3\x56\xcb\xf2\xbf\xa9\x3b\x97\x3e\xaf\x2f\xae\xfd\x7a\x3e\x38\x4a\xb7\xa3\x1c\xc8\xa5\x3a\xa0\x24\x7c\xbf\xfd\xe6\xf5\xa4\xa8\xf3\xf6\xb2\xa4\x92\x43\x43\xa9\x7f\x52\x49\x07\x14\xe4\x49\x64\xa3\xad\x25\x11\x11\xd2\x93\xc2\x4f\xdb\xc7\xac\x11\x11\x7c\x40\x30\xf0\x8e\xb8\xde\x81\x21\xbd\x7d\x0c\x01\x37\xf5\xe9\x1e\xbc\x2d\xf6\xa7\x77\x6b\xed\xd0\xc0\x90\x69\xcf\x6d\x30\x44\x75\xc2\xa8\xcb\x74\x0b\x37\x2e\x17\x40\x0d\xee\x81\x38\xf0\x2a\x55\x9c\x66\x10\xca\xe7\xbd\x6e\x8e\xa0\x2e\x70\xb2\xe9\x42\xe5\x7c\x25\xd8\x46\xc4\x49\xb9\x69\x15\x36\xae\xb9\x87\xc0\x47\x55\x5a\x6e\xba\xa9\x42\x0f\x55\xa0\x7d\x23\xf1\x5f\xa7\x50\x5d\x7f\x0e\x1d\x17\x19\x61\xb3\x6c\x52\x7b\xd1\x85\x44\x63\x6d\x4e\xca\x3c\xd1\xc0\xb2\xfb\x94\xc8\x59\x57\x0c\x16\x0d\x0e\xf8\x6d\x86\x46\xf6\xca\xec\x1e\x59\xcf\x28\x7d\xa2\x71\x56\xc1\x6b\xdf\x7d\x28\xd4\x41\xa9\xc3\x73\xed\xe5\xaa\x6c\x70\x4f\xf5\x02\x4a\x80\xda\x18\x64\xde\x20\xd4\x1c\x14\x48\xd0\x9e\x42\xb1\xa5\x8d\xc5\xbc\x17\x01\xf5\x61\x0c\x39\x39\x1e\x91\xf2\xe9\xc7\x6f\xb4\x05\x01\x11\x4e\xcb\x6b\x2c\x85\xaf\x04\x3d\x40\x0f\x6f\x2d\x3c\x0f\x7b\x88\x45\x00\x41\x61\xcc\x65\xd1\x5a\x80\x47\xaf\x42\x59\xf8\xc9\x4f\xbc\x4c\xdb\x5f\xa7\xf2\xe1\x55\xcc\xd9\x3a\xf9\xf9\x86\xe1\x50\x53\xfe\x84\x7c\x57\x43\x83\x42\xf6\x03\x04\x61\xb8\xe6\x4f\xd0\x04\x2b\xf3\x80\x83\x6e\xd3\x77\x98\x61\x17\x45\xb4\xf6\x9a\x07\x10\x34\x3a\x62\x49\x4a\xc8\x4d\xfd\xdc\xf8\x8c\x10\x88\xbd\x0e\x41\xac\xc9\x4a\xaa\x30\x95\x92\x92\x02\x5c\x71\x46\x00\xa9\xb0\x58\x96\x14\xfb\x91\x82\x03\x59\x09\xf7\x2d\xb5\x42\x21\x02\x8c\xfa\x59\xf1\x53\xc3\x95\x22\x41\xba\x2a\x0b\xb3\xc6\x3b\x11\xe5\x77\xae\x67\x0a\xa8\x12\x80\xcc\x64\xb5\xaa\xc6\x20\x59\x28\x5f\x92\x0b\x24\xf8\xd6\x46\x7b\x2b\x92\x07\xb3\x51\x9b\xcb\xda\x2d\x50\x90\x00\xcd\xb5\x47\x6e\x5b\x16\xb0\x84\xdf\x8b\xad\x0e\x93\x49\xd3\x8a\x62\x5d\x0b\x32\x31\xfd\xa1\xf9\xda\x3f\x15\x30\x70\xf3\xdc\xa7\x84\xec\x77\x96\x61\xa5\x1f\xcc\xc7\x3b\x30\xc2\x8d\xc2\xcd\x1a\xf4\xc1\xae\xde\xa6\x48\x62\xc2\x8f\x33\xcd\xa1\x87\x01\x02\xc8\x33\x84\x71\x86\x91\x4b\x70\xf1\x35\xf7\xdb\x99\xa4\x44\x02\xc1\x21\x67\x04\x4e\x73\xda\x28\x02\x1f\xe9\xcb\xb7\x15\xf6\x20\xa0\x56\xb5\x34\xb3\xd5\x2a\xad\x77\x19\xf2\xf2\xc1\xf2\x80\xaa\x31\x46\xd9\xda\xf0\x5a\x2b\x7c\x22\xb6\x94\x26\xb7\x13\x4f\x1a\x04\x02\xe2\x9b\xc4\x2e\x8a\x59\xc9\xf1\xf6\x13\x09\x33\x7c\x13\xd9\x0a\xe5\xb4\x40\xce\x9b\xb3\xd3\xeb\xb3\xdb\xcf\x86\x37\xb5\x60\xcf\xc1\x80\x53\xdb\xce\x77\x67\xef\x27\x77\xe7\xb7\xf3\x77\xd3\xeb\x97\x40\x9c\xd2\xa3\x27\x40\x4e\x6f\x28\x3f\xc9\xa9\x92\x85\xf8\x74\xd0\x99\x9c\x97\x72\xce\x07\x84\x3e\xb9\x0c\x45\xbb\xd4\x1d\x2c\xb4\x99\x5f\xc5\x25\x3f\x21\x6e\x5b\x42\x9d\xd8\x74\x2a\x4b\x6f\x34\x5c\x26\x69\x0a\x91\xe0\xce\xbc\x4e\x51\x86\x66\x50\x41\xfe\x58\x3a\x5f\x92\xa9\x33\xb9\xa8\xa4\xbf\x01\x93\xdf\xda\x5c\x82\x31\x06\x3c\x33\x03\x90\x27\x10\x61\xbb\x2b\x05\xcb\x2a\x91\xc2\x37\x03\x66\xcd\xb4\xaf\x93\xa6\x9e\x26\xf1\x25\x91\x75\xa4\x78\xf5\xd5\x35\xed\x8a\xab\xac\x4f\xab\x7e\xda\x87\xae\x87\xb8\x89\x13\x89\x8a\x69\x65\x37\xdf\xb4\x2f\xdd\x63\xbf\x05\x60\xdc\xcd\x4c\x72\xf0\x41\xe8\x82\xe7\x85\x9f\x48\x9a\x08\x4c\x0c\xe7\x9d\x13\xf7\x09\x22\xd0\xd4\xb2\x36\xce\x46\x14\x9a\xb1\x4e\xc0\x53\xc1\x89\xdc\x26\x4a\x4b\x5d\x88\x9c\xcc\x26\x93\x9f\x6f\x66\xf2\x3b\x73\x7c\xbd\xa1\x53\x88\xd2\x77\x61\x15\x88\xd4\x51\x95\xfa\xad\x86\x12\x4a\xb0\xd7\x68\xa3\xde\x08\x2e\x35\x83\xad\x91\xa6\x22\xf7\x2b\x03\xdb\x23\x44\x4c\x49\xb4\x81\xea\xd9\x7f\xff\x86\x11\xb8\xd5\x0c\x85\x69\xaf\x4b\x23\xb6\x51\x45\x73\x3d\x75\x11\x0d\x00\xe2\xfc\x25\x57\x4e\x4b\xe0\x53\xdf\x55\x44\x60\xfd\xd6\x45\x54\x0d\x43\xea\xb5\x96\x6e\xb1\xb8\x7f\x2c\xa5\x67\x5c\x4a\x3d\xce\xf5\xf0\x94\x60\x6b\x65\x04\xa8\xcb\x6d\xe5\xdd\xcc\x8e\xe8\x24\x05\x94\x9b\x19\xc6\xd6\x53\xa7\x96\x5d\xf6\x10\xec\x07\x14\x75\x18\x42\x7b\xd2\xc2\xa8\xe4\xd3\x18\x5a\xdf\xce\xce\xc4\xb5\x2f\xc3\x5c\x38\xb1\x58\x55\xa9\x0a\xcb\x41\xe2\xe0\xa1\x84\x75\x35\x2f\x38\xf2\x9b\x9d\x6d\x24\x42\x19\xab\xa5\xcc\x0f\x4c\xfe\x78\x1b\x62\x6a\x2b\x51\xd9\xd8\x8a\x90\xcf\xc1\x72\x38\x38\x0e\x98\x21\x8b\xef\xe9\xe9\x85\xab\x6b\xce\xf1\x89\x3e\x09\xec\x70\x71\x79\x71\x16\x42\x15\xa6\x17\xb7\x67\xdf\x9f\x5d\x57\xe2\xf9\xcf\x2f\x27\x95\x98\xfc\x9b\xdb\xeb\x5a\x28\xfe\x77\x97\x97\xe7\x67\x0d\xcc\xc3\xd9\xed\xf4\x43\xa5\xf0\x77\x77\xd7\x93\xdb\xe9\x65\xe5\xbd\xef\xa6\x17\x93\xeb\xff\x08\x7f\x39\xbb\xbe\xbe\xbc\xae\xd5\x77\x77\xba\x1b\x3d\x51\xe9\x46\xbb\xf9\xc7\x3b\x67\x03\x6a\xd5\xd6\x6d\x5c\x4d\xbf\x7c\xc0\x2e\xee\x89\x3c\xdb\xb7\x1c\x6d\xb8\x7e\x1c\xa6\xe3\xc0\x8d\x61\x9a\x3a\x68\xd5\x3d\x7f\xbe\xe8\xca\xd0\x65\xfc\x30\xb1\x67\x4e\xb5\xf9\x73\x20\x01\x77\x2a\x80\xae\x96\x9a\xe1\x96\xd2\xb3\xe3\xd0\x66\xe0\xc1\x5a\xf1\xce\x7c\x65\x32\x7e\xf1\x96\xda\x3a\xf6\xb5\xd3\x53\x79\xed\x61\x44\x7a\x2e\x36\x94\x5d\x8d\x0e\x2a\xb3\x64\x03\x49\x6c\x15\x05\xfb\x30\x84\xdd\x9b\x6e\x98\x95\x13\x2c\xc7\xae\xc4\xbe\xed\x61\x4b\xbb\xd9\xf7\x86\xb6\x9f\x2a\x69\xb6\xbd\x46\xd5\x32\xa0\xdd\x40\x99\x35\xa4\xdd\xb7\x5c\xdf\x0f\x6d\x37\x55\xd2\x6c\x37\xa8\x7d\x4f\x6a\x37\x18\xbc\x8b\x76\x1a\x9d\x01\x42\x2c\x2c\xa6\xda\x3c\x17\xe3\xef\x5e\x09\xf2\x67\xf7\x6b\xa3\xd9\x00\x2f\x7b\xbd\xcc\x78\x7f\x47\x06\xb4\xc6\x6d\x57\x5e\x63\x95\xbf\x81\xa7\xd0\xc3\x45\x2e\xf8\x7d\xac\x1e\x69\x3e\xea\xc8\x50\xd6\x4b\x9a\x57\x07\xc8\xc8\x70\x7b\x44\x14\x39\x79\xa0\x10\xa5\xe6\x8b\x07\x98\x5c\x42\xbc\xe8\xa8\x83\x05\xa9\x97\xeb\x44\x44\x40\xfd\x24\xfd\xec\xcc\x24\x6a\xf3\x6d\xe9\x9b\xcd\xac\x9a\x16\x11\x75\x08\x74\xd5\xe9\xd0\xe8\x5c\xd7\xc1\xc4\x52\x1c\x50\x99\x03\x98\x6e\x91\xc3\x9d\x09\x06\x24\x91\x60\x4c\xce\xcd\x85\x27\x17\x51\xa2\x45\x90\x31\xae\xf5\xc4\xfe\xe5\xb0\x54\x28\x05\x2f\x5a\xcd\xae\xbd\xed\xe1\x3c\x2a\x4a\x9e\x32\x08\x57\x22\x06\x46\xb4\x55\xe2\x2f\x11\x97\x18\x1a\x53\x88\x4d\x06\x51\xfd\x61\x4c\xc7\x4c\xfe\x0c\x40\x09\x9c\x82\x57\x9a\x7d\x0f\x90\x07\xfb\x32\x1d\xc2\x1b\x5e\xc0\x59\xfc\x47\xac\xc3\x3d\x1b\xcf\x64\x25\x03\x53\xf0\x55\x25\x19\xd3\x78\x26\x6d\xb6\x8e\x58\x45\x7a\x0c\x37\xbe\xb1\xca\x57\xc7\x94\x4b\xdd\x2c\x76\x75\xbf\x50\xea\xfe\x58\xc8\x63\xb0\x49\x15\xc7\xbc\x2c\xd4\x31\xc0\xa5\x70\xfe\xf5\xb1\x4d\x7a\x6c\xb3\x46\xeb\xe3\x75\xf2\x20\xe0\xff\xc6\xeb\x62\x93\xfe\x8b\xce\xd6\x9f\x8e\x56\x69\x7e\x64\xbe\x3d\x0a\xbf\x3d\xb2\xdf\x1e\xd9\x6f\x8f\xcc\x67\xf8\x7f\xd9\x16\xdd\x3b\xe2\x13\x37\x67\xd9\x68\x26\x13\xa9\x45\x5e\x80\xf6\xf3\x98\x27\x85\x4f\x75\xb5\x65\xaf\xfe\xf3\x3f\xd9\x38\xe7\x8f\x18\x11\xfb\x8e\x17\xfc\x0a\xed\x8b\x7f\xff\xfb\x2b\x70\xa8\x62\x14\x53\xc6\xf3\x5f\x4a\x51\xcc\xa4\x16\x66\x13\xb2\xff\x35\x93\xe0\x81\xdd\x6c\xe7\x05\xda\x5d\xd1\x06\x19\x6b\xf6\x2d\x96\x39\x45\x36\xd2\x58\x9b\x92\x3a\xc2\x09\x12\x9e\xb6\x64\xe9\xef\x30\xd1\xff\x92\xbe\xa3\xf7\x07\x6c\xeb\x5f\xd2\xea\xae\xb6\xc9\x96\xf4\x2f\x29\x1c\xa0\xa9\xe2\x16\xac\xc5\xdc\xe2\x85\x7b\x32\x35\xae\x6d\x8f\x34\xa0\x01\x2f\xea\xa6\x6f\xdf\x2b\x37\xc8\x88\x6e\x2d\xf7\x0d\x31\x02\xbe\x02\xef\x87\x00\xef\x79\x62\x76\xc8\x0d\x5a\x42\x41\x73\xc3\x9e\x83\x4e\x4a\xae\x73\x57\x1e\x1a\x2e\xf4\xd7\x27\xc7\xc7\x23\xb6\xd2\xf0\x9f\xc5\x2f\xf0\x1f\x40\x0f\x3d\x17\xa9\x6f\x63\x30\x1d\x10\xae\x39\xcb\xfb\x67\xe2\x39\x50\x74\x9f\x83\x47\xbe\xb6\x4c\xbf\x2b\x65\x9c\x0a\x1f\xda\x58\x71\x89\xa4\xca\xcc\xa4\x9d\xa8\x66\xe6\x21\x98\xe3\x85\x88\xb8\x11\x7c\x8d\xba\x11\x5c\xaa\x96\x85\x90\x68\x0d\xcb\x7d\xb6\x47\x8e\x96\x2b\x50\x8b\x01\x0a\xc9\x0b\x82\x9c\x0b\xf8\x11\x2a\x01\x62\xf6\x51\xfd\x11\xdb\xaa\x92\x38\xc6\x81\x39\x37\x16\x51\x0a\x89\x1c\x2c\x7b\x10\xcb\x45\x51\xe6\x92\x71\x96\x71\x19\x73\x0d\x2b\x70\x99\x83\xb7\x33\x67\xbc\xd9\xd0\x11\xc2\x71\x55\x59\x00\x27\x16\x22\x0b\xc2\x91\x40\x12\xf8\xa0\xcd\xa3\xa0\x11\x78\x26\x00\x17\x75\xe3\xc3\xf1\x4c\xda\x7c\x84\x84\x85\x43\x4b\x59\xa4\xb2\x2d\x31\x1e\xd5\x07\x3d\xb1\x96\x33\x1a\xee\x91\xc7\x9b\xd4\xdf\x1d\xb1\xa4\xea\x5a\x03\xbe\xf9\x22\x48\xf1\x6e\x93\xe4\xbf\x16\x32\x52\xb1\xc8\xf5\x1b\xb3\x0d\x13\x77\xef\x40\xfd\x21\xd1\x7e\x32\x40\x4a\x99\xc3\x8d\xac\x85\xa6\x78\x97\x60\xca\x8c\x4e\x85\xa1\xbc\x4d\xcf\xd9\xbf\x55\x7e\xeb\x28\x98\xb6\xf6\xd2\x3f\x3f\x2b\x22\x26\xc4\x75\xda\x3b\xe7\xd3\x4d\x10\xb8\x65\x43\x89\x8b\x85\xa2\x8e\x43\xca\x89\xcd\xa7\x9d\x14\x90\x21\x33\x17\xba\x98\x49\x3a\x81\x47\x6c\x29\xb8\xd1\xf3\x46\x2c\xd2\x0f\x28\x8c\xf1\xb8\x2f\x1e\x95\xc7\xe0\xd8\xf4\x36\x00\x86\xad\x14\xee\x8d\xc4\xf8\x1a\xa7\x08\x6c\x04\x18\x74\xdd\xd0\x9d\xaa\x02\x83\xd5\x2a\x10\x9f\x30\x0e\x36\x5b\x4a\x3d\xc3\x5a\x98\xac\x07\x46\x62\x8b\x8e\x62\x56\x6f\x07\x3e\x30\x82\x07\x7b\x87\x30\x90\x40\x38\x82\xc6\x4d\x58\x5a\xdc\x67\xde\x87\x1b\x52\xd6\x83\x6d\xa6\x6b\x53\xed\x18\x08\x68\xc0\xd3\xec\x16\xe6\xd3\xbd\x06\x2b\x2d\x72\x9b\xca\x05\xfb\x8a\x04\x93\xeb\x24\x8f\x8f\x32\x9e\x17\x5b\xbb\x7c\xd3\x64\x01\x19\x20\xd2\xe4\x5e\xb0\x49\x9e\xab\xc7\xe7\x1e\x85\x4e\xd1\xd2\x75\xc3\x3e\x04\xc9\x3e\xf4\x96\xdf\x4a\x2f\x5b\x37\x77\x3c\x8d\xca\xb6\xcb\xf0\xd1\x5a\x4f\x2e\x8a\x7c\x3b\x37\x0b\x71\x93\x75\x4a\x8a\x5e\x41\x13\xfd\x95\xdc\x61\x2c\xb9\x35\x13\x46\x27\x4b\x6e\x65\x56\x7f\x3b\x2c\xb9\x2d\x04\xb8\x4d\x96\xdc\xe9\xc5\xf4\x76\x3a\x39\x9f\xfe\x9f\x5a\x89\x3f\x4f\xa6\xb7\xd3\x8b\xef\xe7\xef\x2f\xaf\xe7\xd7\x67\x37\x97\x77\xd7\xa7\x67\xbb\x69\xaf\x9a\xad\xf7\x2a\xf8\x11\x0b\xeb\x39\x61\xb7\x01\x50\x03\x83\x0d\x48\xff\xa6\xfc\xb8\xb0\xaa\xcc\x66\x4e\xe4\x6a\x04\x1b\xf5\x84\x9d\xe5\xf9\x74\xc3\x57\xe2\xaa\x4c\x53\x80\x53\x61\x64\xcf\x69\x2e\xe0\xe2\x39\x62\x57\x2a\x9e\x06\xdf\x41\x38\x62\x6b\x37\xa0\x7e\x1e\xc7\xb9\xd0\x1a\xab\x1f\x51\xfd\x01\x78\xc8\x85\x3a\x12\x78\x8e\x3f\xf0\x24\x35\xf7\xb7\x13\xf6\x1d\x8f\xee\xd5\x72\x89\xe1\x33\x23\x17\x38\xc5\x7e\x29\x55\xc1\x99\xf8\x14\x01\xd5\x5b\xfb\x3a\x39\x57\xab\x5f\x01\xaa\xdc\xc3\x3d\xd5\x71\x49\x81\x54\x77\xf3\xf6\xe3\xbc\x5d\x10\x50\x2f\x3f\xe0\xa7\xef\xf1\xcb\x76\x03\x65\x91\x3e\x43\x78\xfc\xb9\x5a\xb5\x27\x1e\x02\xed\x9a\xb2\x25\x91\x23\x21\x22\x76\x11\xb5\x62\x3a\x91\xf7\x33\xf9\xf3\x5a\x48\xa6\xca\x1c\x7f\x82\x6b\xbe\x51\x33\xd3\x52\xaf\x05\xa4\xa9\x1e\xb1\x47\xc1\x36\x7c\x8b\x6a\x33\xdc\x09\x5c\xb6\x14\x58\x32\x70\x8a\x98\xaf\xd3\x44\x1a\x69\x91\x25\x36\x2e\xa1\x3e\xf5\xcf\x71\xe3\xb2\x44\x87\xfc\x70\x1e\xe2\x5d\xe7\x69\x05\x9f\x07\xa6\x32\x8f\x9b\xb4\x00\x21\x92\xdc\x90\x54\x56\xa9\xfb\x32\xf3\x94\xa8\xaf\xac\x73\x12\x86\xfb\x41\x25\x31\x8b\xcb\x2c\x4d\x22\x27\x77\x1f\x55\xde\xc9\xfb\x8c\x01\x34\xfd\x4f\x9d\x7a\x58\xd8\xae\x8e\xb5\x44\xe7\x04\x48\xba\x1d\x0c\xd0\x2f\xcc\x81\xcd\x12\x19\xa5\x25\xa4\x99\x2b\xb5\xc8\x8f\x5c\xea\x68\x17\xeb\xf7\xdb\x27\xc9\xf6\x24\x9c\x87\x87\xb5\x85\x41\xe7\xa9\x5a\x25\x11\x4f\x43\x70\xb3\x47\x45\x38\x16\x5e\xbb\xed\x29\x99\x30\xc4\x41\xd8\x06\x75\x12\x69\x65\xb9\x00\x22\xe8\x39\x88\xf2\x39\x89\xbb\x43\xda\xbd\x64\xe6\x82\x8e\xed\x0a\x39\x72\xad\x7b\xc1\x9e\x70\xbe\x6e\x9b\x89\x0d\x54\x4c\x4c\xe1\xcf\xd4\xa3\x14\x39\x68\xb0\x00\xfb\x30\x3d\x95\x0a\x74\x13\x97\x9d\xcd\xe1\x93\x6d\x76\xc2\xa5\x03\x62\x63\xe4\xec\x2a\x79\x10\xf2\xf3\x93\x9a\x07\x15\x44\x3c\x5a\x8b\xb9\xd5\xcb\x9f\x5b\x64\xb9\x03\x60\xa0\xb0\xb2\x69\x52\x42\x51\xea\xdc\x9b\x70\x75\xc2\x16\x37\x65\x17\x3a\x12\x77\x44\x64\x99\x46\xcc\x63\x11\xdd\x7f\x76\xd1\xec\x41\x56\xb6\x21\x8c\xb3\x77\x22\xba\x67\x77\xd7\x53\x8c\x06\x4e\x0a\x66\x44\x81\x5e\xfb\xb4\x4f\x9d\x77\xb7\x82\xaf\x5e\x80\xc2\xaa\x6f\xde\x2a\x9f\xaa\xc0\x65\xeb\x33\x0d\x22\x40\x14\xc4\x4b\x1a\x21\x49\xb1\x34\x00\x04\xe3\x85\xcd\x66\x04\x86\x78\xa6\x37\x90\xbc\xa8\x2c\x82\x8c\x7f\x29\x5f\x88\xb4\x83\xb8\x33\x53\xf1\xdc\xfa\x49\x0e\x05\xf3\x34\xca\xb2\x76\x0c\xf2\x3a\xda\x38\x06\x6e\x34\xd6\x5b\x7a\x91\xdd\x7f\xa3\x03\x7a\x0d\x15\xf2\x87\xc3\xbd\x9e\x6b\x08\xef\x5e\x26\x2b\xeb\x6d\x4b\x96\x94\x62\x09\x03\xfa\x8d\x1e\x0c\xf2\xd2\x94\x74\xa5\x62\x82\xe9\x39\x2e\x3c\xa3\x05\x09\xb2\x9e\x78\x5c\x45\xd8\x04\x8b\x03\x84\x7a\xcd\x8e\x10\x3c\x66\x6a\x49\xd6\xc4\x2c\x4b\x13\x60\x86\x8e\x91\x84\x1e\xd8\x33\x74\x15\x1d\x1f\x96\x66\x1b\x1b\x90\x7c\x5c\x59\x20\x5e\x57\x32\x5e\x10\x18\x18\xc1\x30\x07\x36\xb8\xf9\x03\xef\x26\x53\x7b\xf1\x8c\x69\x1d\xed\x71\xde\xe4\x2a\x25\x6c\x85\xb4\x8f\x6c\x05\x78\xac\xdb\x80\xfc\x88\xa7\x51\x49\x7e\x32\x48\x97\x6f\xb3\xe0\xef\x46\x10\x7a\xaf\x9f\x99\xe8\xaa\xd5\xbf\xae\x64\x1e\x9a\x5d\xd1\x05\x68\x3d\xd5\xa6\xb0\xdb\xbc\xb8\x4a\xd5\x02\x56\x4e\x37\x4a\x70\xc7\x89\x65\xc4\x75\x9e\xc4\x43\xf4\x1d\x3b\x26\x97\xee\xd3\x5d\x0d\xbc\xb4\xa6\x1f\x57\x93\x5d\xf7\x8c\x12\x19\xd4\x98\x1b\x87\x51\x20\x2c\x29\xab\x6a\xf5\x7a\x52\x50\x1a\x0f\x58\x56\xee\x7c\xea\xb0\x33\x54\xfb\x72\xd0\x44\x37\x99\x62\xf6\x8c\xa5\x27\x97\xd9\x3d\xc9\x07\xd0\x7d\xa0\x28\x73\x9c\x1f\xdd\x96\x45\x19\x8b\x78\xfe\x84\x3e\x9c\xd1\xb7\xfd\xfa\xe2\x46\x1a\x9b\x07\x36\x40\x79\x64\x54\x85\x98\xe7\xb1\xef\xc7\x08\xf6\x7b\xc4\x33\x30\xc3\x83\x5b\xe3\xe1\xed\xd8\xd6\x71\xed\xa3\x8b\x8c\xbc\xc4\x98\x7f\xc4\x6f\xab\x96\x1c\x38\xfb\xd6\x91\x5b\xa4\x08\xef\x36\x2b\xc7\x2f\xd7\x4a\xdc\x4d\xaf\xb5\x5b\x5f\x61\x56\x80\x1f\xb2\xb8\x5e\x42\x76\x94\x85\xf2\xde\x1e\xe8\xcf\x14\x68\x87\xc3\x88\x3e\x10\x90\xd3\xb8\x03\x29\x62\xd5\x6f\x2b\x84\x06\xe0\x8f\x07\x21\xa0\xb3\x5c\x58\xbf\xe1\x56\x14\x8e\xd7\x21\xb5\x79\x05\xc1\x2d\xe6\x7a\x5d\x25\xb6\xb1\xdc\x15\x8e\x8c\x0c\x9c\x58\xa4\xea\x47\x6a\x93\x29\x09\xb0\x24\x8c\x52\x9b\x49\x2a\xdc\x66\x87\x77\x9e\xb5\x4a\xa8\xe3\x88\x0c\x9a\x18\x38\x23\xb4\x4a\x1f\xc8\x85\x1a\x24\x31\x81\xbc\x92\xa6\x81\xa7\xe6\x6e\xa8\x72\x24\xd8\xb2\x27\x3b\x44\x02\xd4\x52\xa4\xe7\x62\x95\xe8\x42\x84\xd1\xa1\xe1\xf7\xcf\x96\xcd\xb6\x62\x3c\xd9\x35\xf4\x9d\xd9\x6c\xf7\xdd\x82\x8c\x7c\x1a\xd0\x9e\x6d\x26\xe2\xa9\xfb\x6e\xf7\x62\xa8\x05\xf0\x7b\x71\x58\x39\xef\x70\x0d\xe0\xed\x4f\x23\xd5\x97\x76\xe9\x47\xdc\x24\x11\x09\x13\xf7\x80\x46\x33\x45\xab\x92\xe7\x5c\x16\x42\xe8\x99\x24\xc7\x33\x52\xd6\x85\xac\x2c\x35\x20\xa4\xbb\xdb\x44\x4a\x17\xc8\x00\x05\x9f\x2c\x79\x92\x96\x79\xa7\xb9\x01\x57\xe5\x93\x68\x27\x76\x8d\xd2\x29\x14\xcb\xda\x26\xcd\x05\x30\x07\xbb\xc8\xb1\xa6\xd4\xdd\xc6\xd5\xf8\xde\x8e\x2e\xd8\xc3\xa5\xff\x7c\x3b\x5b\x73\x47\x4c\xf3\x37\x7a\x9e\xa9\x01\x12\xef\xc7\x6f\xf4\x95\xea\x88\x06\xd7\xbf\x34\x6c\xa2\x3b\xe0\x13\xbf\x74\x25\x64\xe1\xfa\x1e\x3c\x8f\xfb\x4c\x31\xbd\xd8\x38\xf7\xfa\x27\x3b\x65\x17\xac\xda\x35\x97\x71\x6a\x54\x5e\x5e\xd4\x79\xaf\x1d\xce\xdb\x5c\x89\x0a\x2b\x1c\xbb\x83\xfa\x20\x46\x66\x1e\x35\x02\x2c\xf7\x8d\x53\x2d\x32\x73\x27\x96\xb2\x56\x4b\x35\x5e\xb2\x2d\x4e\xc7\xeb\x30\x94\x06\xd9\x6d\xd8\x5f\x5d\x7f\x39\x0b\xdb\xfe\x99\xd4\x97\xea\x5e\x5b\x26\xab\xdf\x80\x21\xe1\x43\xf3\x48\x88\x48\xe6\xd0\x41\xed\xa2\x1b\x0e\x94\x3a\x10\x48\x66\xa4\x76\xc8\x38\x3e\x93\x94\x0e\x1e\xd1\x05\xe0\x56\x46\xbe\x35\xcd\xde\xba\xe8\xe2\xb7\xbf\xb3\x6c\x5b\x5b\xb6\x84\x45\x05\x94\x76\x2a\x8a\xca\x1c\x5c\xff\x64\x9e\x64\x02\x0f\x61\x3d\x88\x48\x06\x54\x0f\x07\xd8\x42\x3d\xb1\x4d\x4d\x72\xf6\xe8\x4a\xa7\x6e\xc1\x0c\x89\x89\xed\xdd\xa1\x4f\xf9\xca\x72\x5d\x30\x5d\x88\xac\x55\xfc\x56\xb4\xcb\x6d\x26\x26\x52\xaa\xa2\x1e\x9f\x32\x58\xbf\xe4\xae\x94\x9e\x5b\x67\xc0\x61\x34\x09\x4c\x46\x7f\xb8\xb9\xbc\x60\x19\xdf\x02\xf6\xb1\x50\x0c\x5f\x05\xc2\xd1\xba\xa0\xda\x37\x03\xd5\xce\x57\xa5\x0a\x8e\xa9\x05\x51\xb7\xfb\x27\xa8\xc6\xa6\xb2\x08\x6b\x86\x96\xa4\x91\x59\xb9\x4a\x8f\xb2\x94\xcb\x00\xde\xae\xc7\xac\x56\x7d\x88\x67\x70\x9e\x4d\x42\x8c\x41\x03\xc0\x5e\x41\x6b\x21\x2f\x5b\x01\xd0\xc0\xbb\x63\x17\xd4\x61\x10\x86\x4e\x19\xb1\x13\xd8\xf9\x01\xb3\xc0\x60\x4e\x04\x64\xcf\xb0\xb0\x0c\x87\xec\xe1\x1a\x40\xb7\x9d\x0c\xe0\x3c\x4a\xb9\xd6\x3b\x51\x3a\x2f\x42\x25\x1f\x44\x2d\xee\x17\x5f\xd5\x76\x22\x8c\x10\xb8\x4d\xf0\x5e\xea\x1e\x03\x5b\x82\x15\x5d\x3e\xe9\x5b\xa0\xef\x07\xd9\x20\x08\xfa\x40\x7c\x51\xf0\x3d\x32\x41\xde\x8b\xad\xb5\x70\x91\xa8\xe2\x1b\x31\x72\xc6\x56\x67\x4d\x0c\x40\x7f\xcd\x82\x67\x12\x50\xb1\xef\xc3\xe6\xb1\xf7\x4a\x8d\x10\x9f\x49\x95\x73\x2c\x96\x87\x08\xa7\x99\x7c\xaf\xd4\x98\xbb\x4b\x2c\xb5\x9f\xc4\x4d\xbd\x42\x42\x45\x01\xe6\xb0\x36\x9d\xfd\xf7\xe6\x0f\x89\xc4\xf4\x84\xc9\xc6\x5c\xa0\x68\x9c\x60\x45\x41\x83\x6c\x36\x7c\xf5\xa8\x59\x8c\x94\x32\x65\xa2\xd7\xe0\x76\x41\x3f\x27\xd4\x4f\x47\x0a\x02\xb2\x72\x2e\xb5\xd9\xc3\xe0\xaa\x11\x0f\x82\xec\xb5\x15\x8c\xc1\xf4\xdd\xb9\x83\x2d\xe1\xbe\xa4\xd4\x1d\x1d\xbb\x2d\xb8\x74\x1c\x72\x39\x07\xb8\xf9\x00\x42\x3b\x32\x70\x7e\xe0\xd9\xae\x60\xd8\x83\x4b\xdc\x37\x4b\x8e\x50\xab\x7e\xa3\x82\x4c\xe6\x90\xc3\xb0\x12\x11\x1b\x8e\xde\x9d\x3c\xf0\xc4\x69\xe5\xb4\xdf\x9f\x72\xa7\xb7\x81\x61\xa0\xa8\xd8\x7f\xdc\x04\xdc\x96\x0e\x32\xe8\xee\x82\x46\xb0\x43\x86\x38\x20\xe5\xc3\x2d\x3d\x66\x37\x42\xb0\x8f\x30\x52\xa6\xb2\x8f\x94\x81\x14\x50\xd0\x05\x4f\x5a\x13\xc4\xc1\xdb\x53\xb9\x54\x87\xc9\xff\x7c\xd5\x40\xd9\x1e\x34\x2a\xed\xed\x3c\x14\xc7\x0b\x96\x7e\xf9\xb2\xb4\x22\xbd\x0e\x86\xda\x5c\x5f\x79\x7b\x13\x05\x1b\xdb\x96\x1a\x95\x0c\xa6\xf8\x29\xc4\x75\xb5\x45\x62\x7a\x39\x42\x32\xf6\x7b\xa9\x1e\x25\xca\x63\xaa\x89\xbd\x36\xfb\x0f\x74\x16\xf4\x0b\xa1\x26\x58\xa2\x34\x7c\x03\xec\xf0\x13\xf7\x37\xbb\x41\x17\x38\xb6\x19\x52\x87\x69\xd0\x77\x29\xe9\x17\x1c\xe0\xaf\x27\x23\xf6\xdd\x88\x9d\x8e\xd8\x78\x3c\x7e\x33\x62\x82\x47\x6b\xdb\x22\xfc\x04\x45\x7f\xc1\x57\xa6\x6c\x4a\xfb\xb3\x0c\x2a\x80\xf4\x80\x46\x3f\xb1\x24\x88\xdc\xbf\x15\x58\xd5\x6c\x17\x30\x34\x9b\xe2\xc8\x08\x2e\x14\xad\x55\xe2\x1b\x05\xc8\x73\x11\xa9\xdc\x62\xd7\x75\xa1\x72\x8b\xc3\x7d\xe0\x39\x4f\x24\x30\x56\xf0\x66\x14\x02\xd5\x1c\x70\xd6\x8b\x4f\x7c\x03\xfd\x4f\xa4\xa3\xed\x35\xc3\x74\xeb\xda\x5f\x6c\x33\xf2\xb3\x3d\xe6\x49\x51\x18\x85\x4c\xcf\xe4\x0d\x3b\xf9\x96\x4d\xb2\x2c\x15\x6c\xc2\xfe\x8b\x7d\xc7\x25\x97\x9c\x7d\xc7\xfe\x8b\x9d\x72\x59\xf0\x54\x95\x99\x60\xa7\xec\xbf\xcc\xb0\x99\xf2\x2e\x94\xd1\x80\xb6\x23\xc6\x99\x2c\x53\x54\xf4\x5e\x5b\x8c\xeb\x1b\xd7\x2f\xee\x67\x67\x21\x8a\x47\x21\x24\xd3\x6a\x43\x47\xe1\x9f\xdc\xe9\xaf\x13\xb9\x4a\x45\x41\xeb\xa1\x8a\x46\xc6\x0a\x8e\xa0\xa7\x27\x33\xe9\xec\xd4\x7f\x32\x2d\xfe\x13\xfb\x2f\x76\x51\xa6\xa9\x69\x92\x11\x34\x66\x21\x9d\x30\x1b\x1d\x26\xe4\xf8\x31\xb9\x4f\x32\x11\x27\x1c\xe2\xc3\xcc\x5f\xc7\xb7\x30\xdb\xf3\xd2\x53\x81\x86\x7b\xda\xa5\x63\x3b\x44\xf4\xbc\x08\xd7\x84\x4b\x16\x18\x6a\x2b\x9d\x20\x94\xf0\xd3\xe1\x4a\xb0\x27\x40\xa6\xfd\x40\x77\x14\x4c\xa5\x17\x3a\x28\xdb\xeb\x77\x59\xbf\x32\xf3\xaf\x56\xfa\x8f\x5e\xd9\xbf\x76\x8d\x87\x6f\x23\x28\xa7\x38\x39\x3e\x38\x13\x2e\x32\x10\x4b\x88\xfb\x6e\x0b\x29\x3f\x6c\xd9\x78\xed\x44\xf7\xb6\xb9\x4a\xa3\x36\x5a\xf0\xd5\x88\x65\x2e\x8f\x94\xdd\x54\xce\xb1\x8d\xfb\x18\x73\x26\x90\xb2\xf9\xda\x02\x88\xcc\x5a\xa6\xf8\xc3\xe3\x58\x6d\x78\x22\xdf\x40\x1d\x96\x3a\x6f\xcf\x40\xb5\x5c\x57\xf6\x8f\xd0\x2d\xdf\x89\x66\xec\xa6\xf6\xaf\x2a\x3b\xb5\x14\x6e\x6d\xdb\xe1\xc0\x1c\x66\x3e\xc3\xe9\x67\xbc\x0e\xfd\xd4\x58\xa2\xbd\x73\x1f\x50\xbe\xb1\x0a\x7b\x0a\xe8\xf2\x9e\x41\xae\x97\x6f\xdd\x65\x2e\xfb\xa9\x9a\xe2\xb5\x32\xc4\x2a\xe9\x95\x0b\xb7\xd6\xd8\x3b\xba\x89\x61\xdc\xb3\x11\x93\x49\x7a\x6c\x44\xe5\xf1\x85\x92\x82\x71\xad\x93\x15\xb2\xde\x81\x41\x0d\x93\xc8\x5a\xa5\xec\xb6\x7a\x65\x08\x44\x10\xe8\x67\xa6\x49\x88\x98\x2e\x8c\x14\x36\x53\x90\x6e\x67\xd2\x7c\x41\x1a\x01\x44\x4f\x25\x8e\x1c\x1d\x6b\x23\xee\x71\x5b\x17\x1d\x88\x41\xe1\x2d\x0b\x6c\x17\x35\xc3\x01\x0b\x8e\x76\xe2\x01\x1e\xb7\x8b\x80\x18\x94\x4a\xb3\xac\x51\x08\xa7\x59\x88\x54\xc9\x95\x59\x15\x5d\x42\x18\xa4\xc0\x33\x35\x01\x0b\xeb\x6c\x81\x51\x56\xe8\x15\x9a\x12\xa3\xa7\x24\xb1\x37\xa9\xe9\x72\x61\xf4\x38\xe7\xed\x71\xda\x08\x75\xae\x8b\xa7\xe2\x30\xd8\xd2\x9d\x91\xc1\x2a\xb7\xc0\x39\xe7\x49\x44\xc5\xc5\x73\x38\x61\x8f\xba\x10\x1a\xf9\x20\x53\x4e\x87\x67\x7b\xc4\x54\x8e\xf4\x9d\xd6\x83\xed\xf8\xb7\x9a\xb5\x77\x6f\xe9\x9d\xd1\x1e\xed\xb6\x4f\xf2\x93\x36\xf8\x42\x7a\xec\x86\x5f\x33\xf0\xa3\x4f\x38\xc8\xfb\xc9\xf4\xbc\xf6\x5e\x33\x1c\xa4\x25\x66\xe4\x76\xfa\xe1\xec\xdd\xfc\xf2\xee\xb6\xf1\x9e\x29\x8d\x7e\xda\x13\x11\xd2\x39\x7a\xcf\x81\x89\xff\x05\x73\x98\xcd\xd5\xd2\xd2\x03\xf4\x3f\x9e\x1b\x59\xe4\xfa\x41\x2f\x8b\xe0\x76\x1d\x66\x5b\x6b\x2e\x9c\x4e\x92\x13\x39\x27\x5f\x6b\xbf\xc6\xd6\x07\xec\x52\xbe\xc7\xcf\xaf\x54\x9a\x44\xbb\x91\xdc\xf6\xb0\x34\x5a\x55\x13\x1a\xbb\x10\x10\xda\x40\x06\x5f\x6a\x14\xde\xcf\x0a\x11\x15\x1e\x4b\xd0\xec\xdc\xff\xd3\xe8\xd1\xfd\x16\x18\xb4\xc3\xba\x61\x83\xe4\xe4\x0e\x9d\x00\x27\x3b\xb0\x46\x43\xb2\x14\xd4\x72\xc1\xb2\x0b\x32\x2f\xe2\xe4\x73\xaa\x8c\x3c\x1c\x0f\x8f\x6b\x95\x92\x3d\x16\x19\xb8\x67\x32\x13\x79\xa4\x00\x75\x89\xe4\x2e\x8a\x45\xeb\x24\x8d\x7d\x46\xb2\xd7\x10\xa6\x02\x60\xf2\x37\x94\x5c\x57\x38\xf4\x8c\x2d\x7e\xc7\x99\x6f\x97\xdd\x3b\xdc\xdd\x07\x21\xcf\x9e\x13\x77\xbe\x6b\xd9\xff\x4c\xf8\x68\x1c\x0a\xe2\xcc\xab\xe1\x20\x40\xed\x0f\xdb\x33\xc8\xa5\x63\x0e\x7b\x4a\x36\x15\xf9\x6b\x73\x51\x9b\x57\x5a\x66\xf5\xa1\x04\x26\x75\xb4\xa3\x23\x08\x50\x0b\x68\xce\x46\x70\xd4\x04\x3d\xaf\x31\x4d\xea\x4c\x7a\xe4\xc7\x2b\x1d\x6a\x85\xad\xf3\x8c\xd6\x77\x8b\x6c\x1f\xb1\x57\x95\x8e\xbe\x02\xa6\x6d\xa9\xa0\x3e\xf2\xce\x57\x86\x06\x96\xeb\x88\x25\xc5\x4c\x9a\x3b\x9b\x59\x99\xb9\x48\xc5\x83\x69\x5d\xe8\x1d\x22\xbc\xa2\xb5\x9c\xd8\x6e\x43\x70\x14\xb7\x9c\x1a\xb4\x6c\x68\x13\xe6\x21\x63\x33\xba\xa5\x63\xa1\x8d\xd6\x0a\xb9\xa6\xc4\x27\xb3\x01\x12\x70\x7e\x22\xb0\x2d\x16\xd2\xb6\x0f\xf0\x6e\x98\xe7\x7f\x26\xa7\x4b\x20\x36\x00\x3a\x85\x38\x46\x1b\x84\xcd\x3e\xe4\xe8\x33\x13\xf2\x06\x29\xb2\xc8\xd8\x89\xa0\xdc\xd0\xb8\x93\xc4\x83\xc8\xb7\x05\x98\xf4\x61\x5c\xa5\xe0\xc5\x9a\x25\xc5\x08\x78\x4f\xad\xa4\x9c\x49\x1e\xc7\x14\x0f\x8e\xc5\x05\xd7\xd9\xce\x79\xa6\xe7\x0b\xf5\xb0\x4b\xad\x3e\x14\xb9\x8b\xbb\x3a\x4b\xb9\x9c\xe3\x09\xf2\x2b\x60\x77\x83\xb4\xdd\x5d\x20\x8e\x72\x31\x77\x5c\x6d\xcf\xd2\x4e\x27\xef\xaf\x2d\x74\x99\xae\x36\xe5\xc2\x56\x34\xaa\x40\xb3\x17\x9e\xd6\xc3\x59\xe9\x08\x37\x95\x33\x8b\x2d\xe9\x2f\x05\x3c\xac\x97\xd7\x30\x56\x76\xb5\xee\xc3\xf5\xda\x15\xf0\x5b\x45\x5e\xf6\x99\xf9\xda\x19\x52\x9f\xf6\xe1\xa0\xbf\x86\x86\xf8\x24\xe0\xdf\x9e\x66\xbd\x2c\xf8\xaf\xd3\x8a\xd3\x04\x01\xda\xde\x06\xfe\x7d\x0a\x1d\x40\x2b\xac\x33\xa0\xb5\xa7\x65\x0f\x6f\x81\xaa\x05\x1f\xff\x9c\x1e\x0a\x90\x53\x7d\xed\x34\x9e\x50\x04\xda\x35\x66\x53\xc9\xac\xba\x37\x62\xaf\x70\x61\xe9\x57\x64\x80\xa6\xdc\xfe\x04\x96\x89\x69\xf7\x10\x05\x43\x1d\x64\x86\x81\x70\x7e\xbb\xa1\x1f\x70\x27\x5f\xef\x8b\x8e\xcb\x77\x09\x04\xe2\x3d\x85\x6b\x05\x7d\xc8\x0b\x2c\xc0\xc6\x91\x04\xa6\x50\xea\x2e\xf8\x32\x7c\x87\xad\xb7\x93\x7d\x67\x3f\x34\x43\x94\x95\x74\x9e\xda\xe7\x4c\xe5\x33\x69\x4b\x23\x83\xb4\xc6\x04\x81\xf5\xa2\x82\xb8\x20\xd2\xf9\x83\x95\x0a\x50\x00\x9b\x13\x12\x52\x8d\x7a\x52\xf1\xba\x14\x00\x14\xd4\xc2\x21\x50\x21\x0b\x85\xaf\xcd\x28\x1e\x66\x81\x6f\xf0\x98\xaf\x13\x0f\xa7\xa9\x19\x94\xa4\xb0\x3c\xc7\x41\xcc\x9e\x2e\x81\xad\x7b\x59\x1a\x61\x14\x50\x9a\xcf\xa4\x19\x3c\xb6\x4c\x20\x76\x83\xc6\x65\x26\x3f\x28\x6d\x29\x62\xb4\x1f\x0f\x0b\x2c\xa0\x61\x7b\xe5\x52\x63\xd2\x0f\xef\xe0\xd0\x26\x8f\x0f\x92\xbd\xb9\xa3\x05\x82\x35\x89\xe7\x69\xab\xca\xdc\x77\x2a\xe2\x72\x26\xff\x6a\x86\x07\xae\x53\x5c\xda\x69\x55\x4b\xdc\xc2\x30\x83\xe0\x2a\xfb\x88\x85\xbe\xfe\xdd\x9b\x8f\x6f\x30\xb8\xaa\xd4\x90\x8d\x78\x54\x3d\x40\x5c\x76\x8b\x32\x4d\x01\x87\x60\x7b\xe0\x18\x96\x7c\x15\x3b\x71\x78\x74\xa9\x9b\xcb\xaa\x8a\xd1\x67\xa3\xf7\x33\xeb\x4f\x58\xc4\x8b\x68\x7d\x64\x75\x39\x12\x63\xf6\xf4\xa3\xe9\xc3\x28\x28\xa3\x69\xb1\xd6\x04\x0f\xe6\xc2\x99\x6f\x1c\xe5\x6c\x65\xbd\x98\x2e\x80\xf9\xff\xb6\x9e\xed\xcc\x31\x62\xe3\xe2\x44\x1c\x50\x55\xcf\x73\xaf\xdb\x5c\xa3\xfe\xc6\x49\x3e\x12\xc9\x37\x22\x66\xaf\x20\x0c\xf8\x95\x9d\xfc\x99\xcc\x16\xe3\x74\xbb\x2c\x88\xb7\xd0\x0c\xca\x18\xb2\xf2\xed\x39\xe5\xe6\x71\xf3\x9a\xb4\x67\xb0\x3b\x2f\x5a\xed\xba\x8e\x1b\x1b\x57\x53\x7f\x85\x05\x6d\x5c\x6e\x74\x6e\xaa\x98\xc0\x6a\x7a\x10\xae\xef\x47\x6c\x91\x73\x09\x09\x95\xe2\x50\xa9\xf2\xbb\x13\x2e\xcf\x48\x0a\x68\xe3\x02\x25\x4f\xb7\x10\xff\x33\x9a\x49\x64\x50\x04\xaa\xfd\x6d\x94\x26\x11\x5b\xe5\x3c\x5b\xd7\xf4\x20\xf1\x20\x64\x01\x79\xb9\xaf\x05\xd7\x87\x61\x35\xf2\x7a\x09\xac\xb7\x37\x6d\x22\xe1\xf6\xc1\x65\x8d\xf3\x1a\x9a\xd7\x71\xb4\x00\x3e\x53\xc4\xf3\x61\x7c\x57\x7b\x59\x99\x2b\x5c\x9f\x44\x3c\x07\xfe\x67\xd3\x39\x66\x6b\xdd\x07\x7e\xc0\x71\x25\x2a\x26\x8b\xe8\x3d\x14\xb0\xe1\xa8\x9d\x0e\x22\xe8\x9d\x56\xb5\x48\xee\x39\xab\xbc\xdd\x9c\xdc\x7e\x68\xa9\xb0\x61\x10\x4e\x70\x8c\x28\x6f\x2a\x90\x77\xb2\x3f\x96\x0b\x95\x5a\xf6\xd3\xe9\x3b\xa6\x72\x48\x3c\x54\x28\xfa\x29\x89\xbb\xb4\x83\x44\xc6\xe2\xd3\x41\x14\x44\xbb\x0f\x7a\xab\x36\x9b\x6a\x82\xfc\x36\xf5\xce\x82\x74\xca\x85\x39\x84\x0b\x7b\x33\x6e\xbc\xa5\xeb\x50\xe5\x49\x5a\xac\x01\x3f\x8c\x21\x3a\x7e\x50\x37\x7c\xcb\xa2\x35\x97\xab\xc0\x34\x01\x70\x4e\x91\xa9\x1c\x13\xf4\x3e\x00\xd7\xa7\xca\x2d\xc5\x03\x11\x17\x50\x9c\x90\x73\x63\x20\x3c\x5f\x59\x76\x02\xbe\x5a\xe5\x62\x05\x61\xac\x33\x59\xa1\x5e\x01\x9e\x53\x9b\x1b\x08\xeb\xd9\xc5\x5c\xf1\x3c\xf4\x4f\x5d\xb7\xc1\x22\xdf\xba\xb8\x7f\xca\x6e\xed\xf7\x73\x7d\x58\x47\x2c\x11\xe3\x11\xfb\xca\x87\x24\x88\x48\x49\x47\x1c\xd0\x11\x35\x5e\x33\xf9\xb3\x3d\x57\x87\x26\x4f\x54\x7b\xdb\xe1\x59\x23\x47\x76\xeb\xa2\xd9\xc9\xbc\x50\xf0\xa2\x1c\x70\x06\x9d\xf2\x82\xa7\x6a\x75\x6a\x3e\xbe\xc1\x6f\x77\xad\xeb\x53\x8c\x17\xb0\x1c\x7d\xe6\x7d\x73\x72\x9a\xba\x3d\x87\x7f\xdb\x58\xef\x35\x20\xa7\xaa\xdb\x80\xfc\x1c\xaa\xba\x25\x62\xda\x6f\x43\x4e\x3b\xc8\x85\x76\xf4\x69\xa8\x89\xd8\xa2\xfa\x29\x30\x49\xd7\xaf\xb1\x2d\x12\x20\xcb\x55\x5c\x46\x22\x36\x3b\x17\xee\x43\x88\x87\x72\x1c\x47\x15\x21\xd9\x76\xd0\x56\x88\xda\xe0\xd4\xfd\x5c\x36\x87\x5e\xdc\xf8\x6e\xf8\xef\x3a\xec\x0d\x56\xe3\x6b\x1b\xf4\x70\x7f\xe2\x38\xe5\x03\xcf\x29\x57\x7d\x95\xd1\x5e\xe5\xc9\x2a\x91\xbc\x50\x39\x7b\xed\x98\x0c\xde\xb8\x34\x78\xdd\x1a\xc2\x40\x31\x51\x19\x22\x14\x13\x9f\x55\xf1\x68\x5b\xa4\xe6\x2d\x5d\xf0\x4d\x16\x72\x44\x83\x15\x38\x18\x99\x14\x07\xc1\xe9\x26\x60\x3b\x4d\xb4\x8f\xda\x9d\x49\xf2\x38\xe0\xbc\xa9\x3c\x4c\x72\xd0\x79\x36\x67\x65\x31\x7f\x22\xef\x19\x7e\x3c\xcc\xf0\x44\x20\x88\x0f\x3c\xdb\xcd\x24\xc5\xc9\xe4\x80\x61\x8b\x64\x8e\xf0\x9a\x4a\x75\x7d\xee\x4e\x23\x34\x90\xd9\xba\xee\xb8\xbf\x3e\xb7\x8e\x22\x7f\x1f\xac\x5c\xb0\x60\x22\x90\x52\x17\xc3\xc0\xf0\x6a\xef\xc4\x9a\x39\xc5\x2d\xfd\xd4\x69\xaa\xca\x98\x91\x50\x23\x10\x40\x3e\xc6\xd3\x11\x38\xae\xc7\xe3\xae\xb0\xb6\x81\xe9\xcd\x9d\xfc\x81\xef\xda\x77\x20\x3c\xeb\x90\xc0\x3b\xb7\x3e\x8d\xec\x8b\x4d\x3d\x8d\x34\xcc\xbd\x13\xc7\x83\xe6\xde\x59\xc1\x81\x70\x73\x98\x81\x14\xee\xa3\x49\x9c\xc2\x7e\x0b\x1d\x08\x2d\x94\xe0\x15\xc7\xac\xbe\x3f\xb8\x3a\xcb\x42\xb1\xbb\xaa\x8c\xe7\x42\x16\x73\xa8\x71\x58\x65\x50\xc9\x15\x7c\x5e\x51\x98\x7a\x19\x82\xff\x7c\xab\xd0\xbe\x6f\xd9\xb5\xfe\xc2\x6e\xc8\xa6\x65\xe4\x55\x02\x10\x62\x7d\xcf\x5e\x27\x80\x78\x0a\x7c\xa1\x6e\xe2\x3a\xa6\x8b\x3a\xf4\x84\xd1\x0b\x3a\x54\x11\xed\xbd\x3a\xe4\x5b\x0f\xae\x6a\x28\x85\xcc\x7b\xc4\x09\x60\x44\xad\xfd\x2d\xc8\xb8\x71\x51\xf9\x1b\xd8\x91\xcd\xfc\xa5\xec\x6f\x22\x57\x3e\xfe\x0b\x8d\x55\x61\xc1\x3b\xf5\xf5\xa7\x27\x0b\x47\x7d\x1c\xd3\x54\x87\x79\x5a\xe1\x17\x22\x30\x43\x8b\xc2\x62\x6b\xaf\x23\x1d\x2e\xa4\x4c\x44\xf3\x8e\xa4\x3c\xbd\x9a\x12\x5c\x3c\xc3\x24\x3b\x49\xed\x30\xb3\x1b\xf4\x18\xec\x15\x14\x58\xb5\xe1\x19\xa1\x0b\x09\x48\x5e\x77\xde\x8c\xa1\x13\x7f\xfe\xd3\x5f\xc6\x49\x47\x88\x37\x34\x7d\x28\x58\xcb\x35\xfe\x7d\x9e\x08\x19\x83\x33\x96\xc7\xcd\x7c\x71\xb2\x62\x9d\xaf\x88\x67\xb3\x0c\x9f\x25\x1e\xbc\xfd\xa8\xd5\x73\x5c\x44\x9f\xc1\xa3\xef\x85\xac\xdb\xbe\x15\x7f\x5f\x97\x2a\xa1\xe7\xf1\x56\xf2\x4d\x12\x7d\xd6\x36\x6e\x13\x91\xc6\xd0\x44\xaa\x7d\x9f\x57\x2a\x16\xd1\xfd\x50\x9d\xe0\xc9\xd9\x2e\x44\x74\xcf\x7e\xb8\xfd\x70\x8e\xc9\x8d\x13\x3d\x93\x17\xbc\x48\x1e\xc4\x5d\x9e\x3a\x77\x00\x81\xb4\xf3\xd4\xee\x91\x2a\xfb\x7a\xc0\xf4\x65\xa9\xda\xad\xe2\x10\x26\xc7\xd8\x6c\x8f\x16\x65\x74\x2f\x8a\xe3\x9c\xcb\x58\x6d\xb0\x1b\xc7\xba\x5c\x2e\x93\x4f\xe3\x82\xe7\x1d\x99\x32\xd0\x8e\xf0\x2b\xea\xb9\x3e\xff\x59\xe1\x75\x5e\x54\x75\x1f\x21\xcc\x9b\xb2\xea\x57\x94\x5b\x8c\x4a\xe4\x1b\x01\x54\xa7\xac\x9a\x65\x06\x4a\xc1\xc8\x69\x48\xc6\xaa\x35\xc5\x4f\x28\x4a\xf5\xfe\x31\x50\xee\x3f\x06\xad\xf2\x2e\xec\xb0\x51\x3e\xc1\xe9\x86\xdf\xe3\xfd\x70\x95\x0b\xad\x47\x4c\x2b\x68\xf1\x4c\xda\x48\x04\x1b\x2d\x07\xb8\x17\x20\x4b\x4e\xb7\x2c\x52\x99\x83\xcc\x63\xbf\xd6\xea\x11\xec\xf4\x61\x9c\x30\xa4\xf0\x2e\x65\x91\xa4\x8c\x2f\x0b\x32\xe2\x43\x66\x08\x9b\x09\x4e\x8f\x67\x12\x5c\xb1\x11\x74\x1f\x20\x12\xce\xfd\xe2\x3a\xa1\xd9\x92\x47\x49\x9a\x14\xc4\x57\x07\x21\x66\xdc\xf4\xd7\x9c\x07\x66\x2c\x73\xbe\xe5\xa9\xbf\x58\xf1\xb4\xf4\xa1\xd1\x47\x5a\xec\xe0\x43\x4d\xf4\x1c\x0d\x04\x2f\xb7\xc1\x3d\x0a\x30\x09\x9d\x0f\xc8\x1d\x3f\x31\x95\x5f\xd4\x4e\xd1\x7f\x0a\xff\x5b\xb9\x87\xef\xd2\x0a\x0e\xb8\x90\x1f\x72\x38\x36\xaf\xdc\x2e\x7d\xba\xd7\x33\x92\xd8\xa2\x93\x2b\xaa\xb8\x0f\x3e\x76\xc7\x23\xf8\x4c\x3a\x2e\xfd\x63\x9b\xf4\xae\x59\xc3\x80\xd1\x6b\x57\x12\x3f\x93\x39\xa3\x8b\xd0\xbf\x4f\xf3\xad\x35\xfe\x4a\xa9\xf4\x50\x8b\x3c\x51\x72\x24\x4a\xce\x21\x0f\xf4\x21\xd7\x49\x5c\x00\xce\xb0\x35\x7d\xe7\x7c\xee\x8e\x21\xbf\x9a\x3d\x8e\xe0\x60\xd4\x04\x10\x64\xd0\x88\x1d\x38\x75\x9d\xb5\x80\x2e\x06\xe2\xed\xa1\x0c\x44\x6b\x59\xd5\xbe\xe9\x22\x08\xd8\x59\xb8\x6f\x23\xb0\x08\xd7\x5a\x38\xc8\x58\x87\x59\x9b\x6b\x55\x39\xc3\x5d\xc8\x36\xee\xc6\x31\xa8\xdb\x8e\xe7\x86\x4b\xb2\xfc\x91\x16\x3f\x93\x81\xc6\x8e\x8c\x78\x36\xa0\xc1\x8d\x5a\x9b\x3d\xaf\xb2\x0c\x0f\xb6\xe7\x1d\x92\x52\x62\xa7\xe4\x7c\x17\x26\x87\x04\x2c\x48\xa4\x36\x8b\x44\x5a\x4e\x0a\x32\x72\xc3\x55\x63\x62\x19\x7b\x9d\x43\xc2\x5e\x19\x30\x65\x50\x6d\xec\x9d\x9a\x13\x92\x1f\x87\x22\x6b\xdf\x75\x3c\xbc\xdf\x3d\x6f\xf6\x8b\x0e\x4f\x63\xbd\x07\xe6\x00\x49\x1f\xf9\x56\x43\x02\x75\x61\xa4\xe2\x12\x0d\xbb\xd5\xf6\x8f\x02\xf5\xc3\xb2\x41\xcf\x24\x8c\x10\xb2\x85\x59\x41\x6a\x24\x2b\x2c\xc0\xd4\xa6\x8a\xf7\x4c\x6f\xaf\x74\xfb\xe0\xfc\x3a\xbe\x9a\x7c\xa7\xaf\x06\x9d\xd0\xff\x3d\xdc\x33\x3b\x8c\xc0\x07\xda\xa2\x83\x63\x12\x35\x46\x82\x09\x41\xd8\x98\x73\x51\x8f\xd8\x86\x27\x92\xb6\x01\xa6\xe3\x8c\xc5\xa2\x5c\xad\x3a\x4d\xa4\xbf\x7d\x5f\x4b\x75\x9f\xfc\x8f\xb7\x85\xef\xe4\x2a\x7c\x0e\x6b\xf1\xd4\xd6\x84\xe6\x6b\x73\xef\xfb\x3c\x06\xe2\x5f\xd1\x1a\xdf\xea\x12\x6b\x2c\xa2\xe7\xb1\xc6\x4f\xfb\x58\xe3\x2d\xb6\x0b\x02\xfc\xe8\x3a\x6d\xf1\x37\xff\x30\xd3\x7f\x1e\x33\x7d\xaf\x45\x81\xa4\x3e\xf3\xa4\xaa\xa0\xef\x68\xe1\x13\x79\x2f\x1d\x15\x34\xb4\x0a\xb9\xe5\x8c\x74\x8f\x35\x5b\xf0\xe8\x05\x88\x30\xe1\x74\x3c\xdc\x1e\xb8\x07\xfc\x72\xa3\x36\x82\x41\x55\x1a\x13\x39\x31\x8a\x62\x1c\x01\x5a\xd5\x74\xd0\x23\x46\x08\x8f\x02\xc7\x29\x22\x57\x62\xaf\x54\xbf\x96\xe2\x91\x99\xd3\x6a\x14\xc2\xf7\x82\xe9\x81\x0c\x7f\x6f\x8c\x76\x58\xc1\xfa\x3b\xc2\x8e\x5c\xac\x78\x1e\x43\x84\x09\x6d\xc9\x94\x47\xf7\xe6\xdf\xd0\x3e\xaa\x91\x20\x86\x96\x2b\x00\x61\xaf\xbe\xb4\x44\x46\x48\x85\x68\x39\xdd\x5d\xfb\xf0\x73\xcd\x78\x94\x2b\x8d\x46\x23\x97\x18\x1b\xe2\xab\x41\x81\x7d\x48\xe2\x92\xa7\x58\x63\xa7\xa5\x7d\x28\x7c\xad\x0e\x38\x0a\x72\xd8\x35\xd1\x6c\x34\x1d\xc8\x50\x05\xc3\x38\x9e\xc9\x77\xce\x61\x72\xc2\xee\xb4\x20\x94\x99\xb6\x59\x00\x76\xb6\xf4\xc5\xd4\x87\x06\x26\xb0\x53\x87\xd8\x31\x00\x16\x64\x1d\x0c\x84\xee\x1e\x89\x3d\x74\xaa\x87\x4c\xca\x60\x5a\xe8\x69\x90\x48\xdf\x0f\x0b\xde\x13\x72\xc1\xe3\x6d\xc8\xc5\x98\x48\x06\x5e\x3a\xc6\xe3\x4d\x22\xcd\x26\xb0\xc9\x5a\xdd\x49\x63\xf3\x36\x20\xe4\x18\x72\x9a\xa5\x69\x4d\x08\x6a\x26\x85\x51\x2e\x79\x9e\xa4\x5b\xb8\x4f\x64\xb9\x38\x0a\xea\x09\xe6\x87\x22\x9e\x20\x03\x05\x91\xc8\x94\x5a\x2c\xcb\x14\x6f\x1d\x70\x2f\x77\x1d\x20\x89\x74\x37\x1d\x19\x85\xa3\xa0\x4c\x42\x41\xc5\x98\x9f\xf3\x39\xa2\x47\x1a\xde\xca\x61\x1e\x37\xcf\x15\x9a\x03\xc8\x7d\xad\x1e\x6d\xa8\xdb\x23\xf7\x58\xe6\xae\xd3\xf5\xd9\xbc\x2c\xbb\xf5\x50\x7b\x03\xb4\x72\x2a\x20\xfc\x73\xae\x35\x7a\x26\x62\x27\x9b\x12\x09\xdd\xa1\x14\xd7\xde\x72\x5d\x6a\x8c\x98\x33\x73\x09\xe7\x97\x35\x74\x54\x0d\xd7\xcc\xf5\x2e\xd1\x4a\xb2\x59\xf9\xe5\x97\x5f\x0b\xf6\x25\x84\x10\xd2\x7d\x04\xfd\x63\xc0\x16\x8a\xa5\x83\xc8\x76\x15\x08\xa4\x12\x6d\xcc\x08\x6b\x83\xa8\xda\x78\x7d\x00\x79\xf2\x68\xcd\x74\xb9\x40\x04\x23\x27\x17\x0b\x97\x8e\x75\xfc\x5c\x01\x18\x11\x4f\x76\xdb\xfa\xff\x47\x1c\x0a\x98\xf4\x65\x26\x33\x85\xc4\xf8\x00\xfd\x5c\x08\xb6\xe1\xf9\x3d\xe4\xf0\x45\xf3\x3c\x24\x02\x78\x9d\x88\x71\xd5\xbd\xf0\xa6\xd2\x1e\x72\xe8\x20\xe1\x35\xcb\x4b\x29\x6d\x52\x32\x66\x14\x53\x6f\xeb\x1f\xcd\xe4\xa2\x0c\xef\x9e\x15\x67\x81\x5f\x5a\xe0\x30\x00\x61\xab\x80\xa9\x84\x1a\xc5\xb5\x6f\xd7\x98\xf5\xf0\x1a\xcc\xe4\x33\xbb\x0d\xf6\x19\xfc\xae\x48\x07\xb3\xc6\xbc\x20\x5e\x01\xba\x1b\xe6\xcd\x86\xe9\xc0\x65\x0f\x4a\xce\x15\x24\xcf\x1e\xb1\x1f\x92\x07\x31\x62\x37\x19\xcf\xef\x47\xec\x1d\xba\xff\xfe\xa0\x16\x6d\x36\xbc\x06\xa1\xc4\xc1\x76\xbc\xa7\x99\xb1\x76\xd1\xbc\xb4\x6b\xff\x3f\x37\x88\x01\x58\x97\xef\xfb\xbf\x27\x22\xaf\x83\xeb\xe3\x7f\xba\x25\x62\x8f\x9b\xfa\x1f\xe0\xb5\xff\x91\xb7\xe2\xdd\x34\x1f\xff\x14\xfe\xd7\xca\x2f\xab\x71\x81\xee\x49\x52\xae\x15\x95\xf6\xdb\x0a\x6c\x4e\xe2\xfa\xa1\xdc\x8c\x6f\xee\xb7\x15\x28\x7c\x3c\x76\xa1\xed\x03\x40\xf7\xf4\xa9\x1d\xaf\xd3\x54\xe9\x32\xdf\xbd\xf9\xaf\xab\xad\xb6\xb5\xb7\x10\xbd\xc2\x62\xdb\x2c\x04\xb0\x16\xf4\x85\x9f\xe0\x6b\xf3\xbf\xaa\xc5\x1c\xb0\x56\x87\xed\xf0\xb6\xe2\x1c\x7d\xb4\x8a\x2a\x4d\xf5\x27\xe4\x4d\x26\x80\xef\xca\xab\xa2\xde\x21\x50\x5b\x61\xce\x34\x32\x93\x96\x71\x1f\x23\x66\xf3\x5c\x00\x35\x78\x2e\x20\xd1\x23\x23\x86\xc3\x74\x1b\x68\x44\xc1\xcd\xc7\x83\x62\xc2\x28\x37\x08\x56\xa5\xfb\xd6\x42\x08\xe9\x46\x7b\x88\x2a\x01\x34\xd8\xb5\xd1\x27\xb4\xdb\xa3\xb0\x89\x17\x3a\x92\xd2\x36\xbe\x0b\xee\x82\xa0\x72\xaf\x44\x11\x48\xf3\x9a\x6a\x51\xd9\x9a\x15\x0f\xd5\x6f\x0a\xf1\xdf\xea\x83\xae\x91\x73\x55\x0c\x28\xbd\x7c\x7a\xcf\x61\x2f\xbf\xe2\xc5\x1a\x2f\xb4\x1b\x55\x08\x94\x99\xc8\x12\x84\xeb\x05\xad\xce\x8b\x54\x2d\x20\xc3\x62\xb1\x83\x41\x32\xa2\xad\xdd\x6b\xe8\x9a\x13\xd6\x47\x32\x18\x69\x02\x91\xb6\xb9\xd0\x40\xb8\xd2\xf4\x52\xf5\xc5\x27\x0f\xbb\x74\x37\x9b\x6b\x84\xfe\xbb\xc6\x65\xbb\x99\x92\xc3\x6c\x6b\x00\xab\x9e\x3d\x21\x82\xa6\x91\xe0\x84\xa8\xaa\xc9\x0d\x8c\x6c\xb5\xb5\xfe\xda\x44\xfe\x33\x39\xc1\x27\xc1\x21\xc0\x7d\x8e\x2d\x87\x07\xa5\x9c\xcd\x6e\xff\x61\xf8\x2a\x9b\x84\x08\x44\xb2\x10\x8c\xbc\x2d\x13\x2e\x03\x23\x88\x6a\x94\x45\x92\x0b\x26\x01\x85\x30\x93\xba\x5c\x1c\x79\x62\x12\x73\x8b\x7b\x00\x32\x1d\x2d\x32\x0e\x57\x19\xe0\x2b\x3a\x6a\x39\x86\xd1\x32\xe9\x73\xe5\x58\xfa\x40\x9e\x92\xf0\x87\x58\x49\x8c\x8c\x77\x7d\x77\xe5\x98\xcb\x1a\xdc\xa2\x2d\x5c\x09\x0f\xbb\x5d\xf2\x02\xb2\x79\x41\x04\xe6\x35\xa2\x28\x7e\xed\x03\x3c\xf4\x86\xf6\x3d\xba\xc1\x9f\x36\x93\xff\x6a\xcf\x86\x6e\x50\xf1\x80\x95\x6e\x46\xc6\x1c\x51\x9d\x60\xe7\x4a\xdb\xec\x15\x32\x50\x02\xbb\x1b\xd5\x58\xf2\x6d\xa5\x72\x8b\x6b\x09\x53\xba\x28\x0a\x97\x85\xa7\x0f\x89\x0e\xc8\xde\xa1\xb6\x1b\x21\xd8\x49\x2e\x96\x27\x1f\x73\xb1\x9c\xdb\x99\x1e\x43\x87\xc6\xa6\x47\x4d\xca\xf7\x9e\x8b\x43\x67\x4a\xb6\x93\x1f\xee\xa1\x46\xad\x75\x09\xcb\x09\xfa\x94\x2c\x99\xcf\x6e\x6b\xfa\x03\x0c\x10\x22\xae\x73\xd1\x37\x5a\xf6\xd9\x8f\xb9\x2e\x24\x58\x0f\xa8\x55\x47\x12\xd4\xff\xf9\xc7\x5b\x65\xcc\xfa\x1c\x6f\xb7\x55\xc8\x8c\x15\xf6\x5c\xba\x03\xaf\x1b\x17\xfa\x79\xd1\xe9\x30\x81\x3a\xe3\x8f\x92\x78\x6c\x06\x99\x9e\xfa\x1d\x6b\x35\x00\x51\x70\xac\x35\x30\x70\x7e\x97\x49\x6b\xe9\x4b\x5c\x1e\xcd\x11\xf3\x37\x68\x9e\xa6\x61\x46\x0d\xef\x69\x9b\x49\x1f\x97\x6a\xb4\xd6\x34\xb5\x26\xbc\x8a\xbe\xe1\x12\x1e\xeb\x82\x17\x62\x64\x49\x57\x88\xae\x90\xfc\x61\x47\x0b\x0e\xa9\xad\x5d\x0e\xb5\x7d\xbb\xf9\xb9\x2e\x91\xbf\xb1\xb8\xe8\x3d\x9e\x67\xac\x76\x7e\x2f\x1a\x70\xe6\xbd\x6d\x6d\xf7\x74\x04\x94\x12\xb0\x99\xad\x94\x8d\x78\x9e\x5b\x94\x3f\xd5\xca\x2c\xdd\x79\x78\x2b\xe9\x68\xe7\x5a\x44\xf7\x99\x4a\xe4\x60\x59\x54\xa1\xb8\x80\xc5\x5e\x30\x5f\x9a\xbb\x1d\xf6\x3a\x1c\x2b\xfa\x24\x76\x44\x03\xbc\xc2\x42\x43\x3d\x19\x1b\x67\x2e\x53\x76\xf7\xb2\x7b\x6e\xfb\x85\xf0\x67\xc3\x0b\xd8\x62\x5b\xfc\x43\xb5\x53\x85\xb7\x18\x76\x2a\x4c\xa0\xbc\x11\xfd\xd5\x73\xb0\x39\xab\x50\x18\xb6\x0e\x29\x98\x20\xff\x61\x19\xfa\x87\x65\xe8\xbf\xb9\x65\xe8\x73\x9a\x85\x00\x1b\xf3\x92\x36\xa1\x1d\x0e\xf2\x03\xb6\xa3\xab\x75\x70\x8c\x63\xab\x76\x3c\x0a\x92\x7e\x07\x91\x8e\x4d\xa0\xbf\x25\xc2\x30\xe3\xb3\xe0\xd1\xbd\x90\x9d\x3e\x7a\x4b\x5f\xd4\x99\x7f\xf5\x79\x11\x2c\x6d\xec\x4b\xc1\xd7\xbb\xa1\x2c\x1e\xea\x44\xa4\xc1\x6d\x84\x20\x66\x9f\x80\xee\x69\x3a\x7e\x04\xa0\x31\x95\x3b\x62\x6b\x4d\x51\x78\xe8\x8c\x44\x9a\x24\x04\x4b\xd5\xa8\xa0\xfb\x62\xe2\x6c\xc5\xf3\x4c\xa9\xb4\x15\x1a\xf7\xac\x03\xd8\x08\x94\xe9\x3b\x78\x53\x54\x46\x75\x08\x18\xb3\xa3\xe8\x83\x2e\x7c\x88\x06\xc6\x63\x40\x26\x0e\x58\x4d\x71\x09\xb1\x94\x7e\x38\x82\xf4\x8a\xdc\x19\x5c\x08\x23\xb6\x10\x11\x87\xc4\xaf\x16\xbc\x17\x71\x17\x7d\x12\x92\x22\x35\xc2\x41\x74\xb3\x9e\x0e\xaf\x25\x94\x3b\x4f\xda\xd2\x6e\x0c\xdd\x5c\x35\x0d\xc1\x42\xcb\xb1\xe5\x16\x49\x62\x69\x17\xf7\x25\x34\xb6\x1c\xd3\x73\xc8\xbe\xd8\xef\x84\x6b\x95\x3b\x53\x2a\xe8\x14\xca\xe9\x2f\x48\x7f\x80\x70\x9c\x4d\x4f\xe4\xce\x4c\x4e\x5c\x9e\x5b\x8f\xfd\x72\xc8\x3d\x74\x97\x22\x66\xb1\x31\x35\xc8\xe5\xe8\x6f\x2e\x23\xa6\xcb\x68\x0d\x6c\x95\x55\x39\x15\xca\xad\xe6\x8e\x1d\xcd\xa4\xb9\x10\x81\xa9\x65\xc3\x21\x2e\xfe\xd1\x28\xab\x3a\xf9\x9b\x70\xf0\x2c\x22\xef\x0a\x11\x59\x78\x71\x52\xb2\x15\xbd\x66\x89\x43\x11\x60\xe1\x31\x25\x65\x16\xf3\x42\x8c\x67\x1e\x6d\x93\xa0\xa5\xd3\xa2\x3c\x48\x65\xd6\x61\xc7\x42\x1c\x63\x4d\xd2\xa6\xc9\x52\x44\xdb\xa8\x91\x85\x68\x37\x4d\xc4\x3f\xae\x6d\xbf\xad\x6b\x1b\xb2\xec\x62\xcc\xe0\x90\xa1\xa5\xa6\x5e\xfb\xcf\x0f\x1b\x5c\xc1\x82\x96\xe8\x01\xe3\xfc\x19\xaf\x9d\x2d\x3a\xf0\x30\x7d\xbe\xf7\x3d\x68\xf7\x71\xe6\x2f\xb6\xfe\xb0\x0e\x28\x10\x1a\x6a\x61\xe8\x5c\x2c\xc2\xa5\x63\x14\xda\xde\x6e\xfd\x6e\x96\x99\xdf\x14\x38\xa9\xcf\xc5\xd5\x68\xdc\x0e\xae\x74\x61\x35\x6d\x29\xf0\xbc\xdb\xa1\x71\x07\xac\xee\xbc\x78\xa5\xdd\xa8\x57\x25\xa0\xc5\xfe\x4f\xe4\xf6\xa0\x00\xcc\x6d\x26\xe6\x65\x9e\x1e\x04\x37\xbe\xbb\x3e\x3f\x76\xda\x06\x68\xce\x9d\x79\x8f\x8a\x5a\x6a\x68\x9b\x93\x58\xc4\x04\x07\x8d\x54\xca\x16\xe5\x72\x09\xf9\x4b\x08\x18\x6a\x85\x11\x64\xa6\x2f\x75\x61\xcf\x13\x64\x9a\xe1\xba\x98\x49\x25\x05\x9b\x7d\x71\x3c\xfb\xc2\x1c\x65\x39\x8f\x0a\x91\x23\xc9\x40\xca\x75\xc1\xb4\x58\x81\xaa\x45\x95\xde\x5d\x9f\x43\x54\x62\xb1\xc6\xe2\xdc\x95\x15\xe3\x3d\x91\xf3\x19\x72\xfd\x00\x41\xb5\x0c\x32\x6e\x41\xdb\x5f\x73\xcd\x12\x39\x93\x1f\x4d\x11\xc7\x2b\xa5\x56\xa9\x18\xdb\x09\x19\xbf\x23\xd3\xe3\xc7\x37\xd8\x02\xf8\x3c\x84\xf5\x9b\x03\x91\x4b\x25\x93\x88\xa7\x10\x90\x33\x93\xa0\x35\x8f\x4c\x67\xc0\x34\x3a\xfb\x62\x3c\xfb\x82\x81\xfb\xb4\x60\x3c\x8a\x44\x56\x88\x18\x53\x9b\x4e\x25\xcb\x00\xbf\x18\x89\x11\x2b\x04\xdf\x68\x4b\xe9\xcc\x32\x73\xc7\x84\xab\x21\x4b\x24\x21\x9d\x16\x89\xe4\xf9\x16\xc1\x4c\x98\xac\x9c\x82\x3f\xb6\x33\x29\x3e\x01\xfd\x67\x02\x0c\xa0\xa5\x76\xb4\x34\x94\x98\xc0\x74\x79\x22\xb7\x63\xf6\x03\x32\x34\x20\x05\xea\xdd\xf5\xb9\xa5\x37\xa2\x18\xd0\x99\xd4\xd1\x5a\x6c\x04\xfb\xb8\x2e\x8a\xec\xe3\x08\xff\xab\x3f\x82\xc7\x51\x2a\x86\x4f\x47\xcc\x4c\x91\x51\x54\x2d\x5e\x3e\xdd\x42\x0e\xd9\x32\xa3\x84\xf3\x33\x09\x5c\xec\x79\x88\xee\x35\xa3\x0d\x35\x06\x57\xf0\x0a\x2e\xdc\x48\x71\x48\xee\x78\x62\x06\xe7\x7f\xb1\xe9\xd2\x57\x69\x06\xd0\xe6\x16\x73\xad\x02\x85\x44\x43\xc8\xd6\xd8\x7c\x30\x91\xec\x87\xdb\xdb\x2b\xf6\xfd\xd9\xad\x55\x76\xee\xae\xcf\x71\x5d\x00\x9d\x0a\xe3\xec\xcf\xf5\x29\xbe\xdd\x66\xe2\x2f\x7f\xfe\xcb\x4c\x32\x9b\xa3\x5c\xda\x91\xc6\x1d\x3d\x42\x4a\x58\xc0\x3b\x81\x63\x16\xa8\x9c\xa1\x3e\x4c\xb9\x43\xcd\xcf\x51\x3b\x7f\x24\x6b\x01\x9c\x51\xa9\x52\xf7\x65\xe6\xcc\xdc\xa1\x1e\x66\x2a\xbc\xbb\x3e\x87\xd2\x81\x4e\xa9\x58\x43\xfe\x34\xe1\xac\x2f\x30\xf1\xdc\x36\xc6\xfc\xfb\x41\x25\x31\xe3\x72\x6b\xbe\xc5\xa2\x61\x59\xe6\x62\xa9\x72\x31\xb2\x6f\x9a\x02\x78\x91\x2c\x92\x34\x29\xb6\x20\xa5\x6c\x5e\xfb\xcc\x72\xe4\x9b\x02\xcc\x6d\x86\x00\xde\x66\x81\x61\x1a\xdb\xd7\x77\x3a\x44\x80\xc3\xa4\xb9\xdc\x88\x78\xd1\x31\xdf\x2e\x72\xc1\xef\xcd\xea\xa6\x12\xc6\x6f\x28\x67\xac\x38\xc1\x33\x66\x59\xca\x08\x97\x86\x69\x03\xad\x7e\xba\x39\xa5\x5b\xc6\x1f\x78\x82\x39\x65\xad\xbb\x7c\xb9\x4c\xa2\x84\xa7\x24\x39\x16\xe5\x12\xd2\xc6\x70\x4d\x29\x8b\x10\x7c\x68\x0a\x81\x5b\x86\x4d\xd8\x8f\x0b\x6a\x21\x56\x09\x02\x8e\x1f\x93\x62\x8d\x71\x05\x63\x9c\x67\x9e\x25\x7a\x1c\xa9\x0d\xec\xb7\x1b\x58\x4a\x9a\x2e\xbd\x80\x03\xaf\xad\x73\xf6\xda\x42\xed\x36\x59\xb1\xa5\xb5\xf7\x86\x6d\x92\xd5\xba\x80\x44\x2e\x50\x3b\x40\x22\x92\x4d\x96\xc2\xa5\x8f\x3c\x8c\x16\xef\xab\xc5\x86\xcb\x22\x89\xba\x7c\x4a\xad\x29\xc1\xfb\x61\x3c\x17\xdb\x62\xb7\x1d\xef\x03\xf1\xec\x73\xa4\xd0\x0f\x24\x32\xab\x0b\x64\x92\x81\x90\x5e\x26\x20\xf0\xaf\xa7\x9c\xdd\x77\x85\xfa\x38\x91\xdb\x8f\x9e\x84\x94\xcb\x20\xf7\xd5\x8e\xda\xed\xfe\xe7\xa9\xa2\x59\x63\x7c\x26\x01\xd5\x69\x04\x06\x25\xa3\xdd\x79\xc6\xb8\x23\xc5\xcc\xec\x95\x5d\x34\x69\xb2\x80\xba\x49\x56\x68\xa6\xcb\x0c\xe2\x09\x0a\xc5\x32\x1e\xdd\x1f\x97\xd2\xfc\xc7\x08\x43\xdc\xee\x3a\x24\x27\x9a\x49\xb5\x64\x65\x81\x1b\xc7\x2e\x61\x30\x8a\x04\xa6\x00\x7f\x41\xdb\x88\x62\xad\x62\x17\x17\x66\xca\x84\xf1\x33\x2d\x3a\x23\x7a\xe9\xb7\x27\xec\xca\x54\x68\x16\x31\xd5\xcd\x5d\xf7\x13\xc9\x4e\xff\xf5\x5f\xe1\x7d\x33\xb8\xef\x95\x62\x4b\xa5\xd8\xb7\x6c\x3c\x1e\xff\x3b\xfe\x66\x0a\xe5\x72\x4b\x7f\x71\xb9\x1d\x9b\xe2\xde\xe7\x6a\xf3\x7a\xa9\xd4\x1b\xfa\x1d\x92\x36\x9b\x7f\x24\x4b\xf6\xda\xbc\x74\x07\x55\xdd\xaa\xd7\xb3\xf2\xcb\x2f\xbf\xfa\xbd\x79\xf5\x0d\xfb\x4f\x7c\x27\x78\xfd\xef\x61\x53\xbf\xda\xd3\xd4\x3f\xf0\x07\xde\xa7\xad\xec\x5b\x38\x6b\x4c\x01\x3b\xdb\x98\xe8\xd7\xef\x95\x1a\xc3\xed\x3f\x6c\x1d\x16\x6b\xde\xc0\x56\x04\x6f\xfd\x7b\xd0\x6c\x66\xdb\xfd\xf5\x9e\x76\x23\xaa\xde\xb5\x1c\x8b\x7f\xaf\xd4\xeb\xf1\xd8\xc8\x2d\x1a\x57\x6c\xf5\xeb\x37\xd5\x81\x86\x0e\x34\xdb\x6f\x1e\x4f\xb1\xf9\xef\xce\x6e\x4e\xaf\xa7\x57\xb7\x97\xd7\x6f\x4e\x6c\x0f\xfc\x0c\x04\xdf\x33\x9b\x5a\xdb\x35\xfc\x7f\xef\x69\xf8\xf7\xca\xb6\x19\x1a\x7d\xf2\x2d\xc3\xd9\xcc\x16\xe3\xf7\x4a\xfd\xe7\x78\x3c\xfe\x3b\x3d\xe6\x72\x3b\x32\x07\x93\x79\x27\x43\x51\xfe\x81\xe7\x7a\xcd\x53\xd3\xa7\xa0\x0d\xae\x13\xad\x25\xda\xe2\x92\x65\xad\xb0\x3b\xb9\xf1\xc5\x41\x65\x30\xb1\xf0\xd6\x3f\x7f\xcb\x64\x92\xfa\xe9\x0b\xea\x80\x79\xba\x05\x6a\x89\xe8\xde\x6d\x17\x97\x23\x74\xb1\x65\x59\x7d\xe3\x62\xdc\xd9\xd6\x66\x28\x30\xe2\x7e\x26\x5f\xb5\x48\xf4\x63\xa3\xda\x8d\xe1\x81\x39\xa0\x5e\xd9\xec\xf1\xf6\x58\x70\x99\xb5\x70\x64\xc1\x11\x8d\xbb\x55\x52\x8c\x5a\x9b\x7e\xe8\x0e\xbc\x80\xac\x0a\xd4\xce\x57\xc7\xaf\x28\x50\xc8\x57\x51\x25\x92\x9f\x7d\xb1\x54\x6a\xbc\xe0\x39\xb4\xee\xd3\xf1\x76\xfc\xb7\xd9\x17\xd8\x1f\x54\x3e\x50\x31\x82\xc2\x67\x5f\xc0\x53\x58\x0e\x33\xf9\x87\x9b\xcb\x8b\x99\xfc\xf6\xdb\x6f\xbf\xc5\xd1\x32\x7f\xb7\xf8\x5e\xcc\x71\x05\xe2\x16\xf5\x94\x52\xdb\x94\x92\x62\x55\xa6\x3c\x9f\xc9\x76\x77\x4d\x2c\xbc\xd0\x1c\x79\xe7\x0d\xad\xb3\x91\xcd\x6e\x01\x49\xca\xac\x8c\x43\xdb\xe4\xc7\xff\xdf\x34\xf9\x23\xa9\x88\x4e\xc8\x87\x43\x30\xb6\x8b\xf9\xc4\x2e\x55\x33\xd8\x66\xfd\x7a\x3d\x6b\x99\xa4\x82\x36\xae\x5d\xdc\x57\x22\xd7\x4a\xfa\x35\x43\x17\x02\xe0\x36\x03\x07\x00\xfb\x96\xbd\xfd\xf7\xda\x53\x33\x0f\xf6\xe1\x57\x15\x49\xc0\x98\x2f\x6a\xf6\x05\xb4\x7a\xf6\xc5\x09\x9b\x7d\xd1\xb6\x6e\xaa\x0d\x1b\x63\x53\x66\x5f\x8c\x7c\x01\xd0\x8c\x0b\xbe\xc1\x42\xca\x2f\xbf\xfc\x3a\xc2\x26\x60\xe8\x5a\xf0\xa6\x69\x52\xf7\x8b\x41\x13\xa7\x35\xd7\x99\x1d\x08\x1b\x02\xf9\x28\xd2\xf4\xe8\x5e\xaa\x47\xcc\x33\x0e\x7e\x22\x8a\x52\x66\xb8\x3c\xaa\x93\x4b\xb9\xc9\x6a\x33\x6e\x83\x36\x5d\x35\x2e\xbd\x1d\x4c\xe8\x4c\x7e\x84\xa5\x63\x67\x94\xe8\x88\x80\x0e\xd4\xd5\x04\x97\x1a\x5a\x09\x36\xc6\x82\x16\xc2\x4c\x42\x31\x6e\xce\xd9\x6b\x00\x7e\x51\x57\x1a\x9a\xb5\xbd\x3c\xfd\xe5\xcf\x7f\x79\x73\x72\xc8\x3c\x55\x8b\xab\x4c\x15\xf4\x07\xcb\x78\x3b\xfe\xea\xed\x57\x7a\xf6\x05\x8d\x7a\xfb\x15\xfb\x3c\xd1\xc5\x4f\x35\x0d\xec\x09\xc9\xce\x8d\xe2\xf0\x52\xce\x0b\xdb\x54\x6c\x66\x5f\xa7\xc5\x75\xd5\xad\xa0\x96\xd6\xac\x03\x97\x33\x9b\x06\xde\xb4\x7b\x90\x7a\xe7\xc6\x0b\x2f\x5b\xec\x31\xe7\x59\x26\x72\x6b\x2b\x6f\xb8\x33\x20\xa7\x3a\xd4\x62\x45\x7f\x9b\x30\x33\xcb\xa6\x56\x34\xbc\x06\x43\x37\x6e\x9f\xb9\x8b\x32\x4d\x3b\x67\x6e\x7f\xb2\xe4\x8b\xbb\xf3\xf3\xf9\x4f\x93\xf3\xbb\x33\xdb\xfd\xd6\xe4\xc3\xc1\x6b\x9d\x63\xe2\x5a\x42\x63\x82\xb8\xaa\x02\xb0\x54\xe5\x46\xe4\x96\x29\xcc\xf7\x1a\x71\x24\x65\x9a\x56\xd3\x62\xcf\xe4\x47\x2a\x07\xc4\x40\x29\x13\xab\xa6\xec\x1c\xb8\x6a\xfd\xf0\xda\x47\x53\xf8\x47\xfc\xf6\x88\xf9\x4e\x9c\xb0\x0b\x57\x6b\xc7\xb8\x12\xe1\xc4\x01\xdb\x01\xe3\x6d\xbb\xb6\xc3\x73\x27\xfe\x7f\xda\xf6\xb8\x93\x90\xf4\xcb\x48\x5e\xcc\xd7\xff\x2c\xbb\x03\xc7\xee\x63\x15\x0a\xee\xcc\xa5\x31\x7a\x0d\xa1\xdc\x11\xa6\x6b\xd7\x05\x71\x16\xe3\x98\xcd\x24\x0a\x62\xd3\xa6\x42\x75\xb7\x89\x4d\xc9\x83\x94\x72\xb9\x2a\xf9\x4a\xe8\x11\xb3\x95\xcf\xa4\xbd\x9d\xda\xbb\x8e\x03\xe6\x00\x23\x6b\x6d\x09\xd5\x42\x80\x13\x39\x93\xd4\x27\x38\x61\xa9\x78\x0c\x47\xfd\xc3\x8d\xeb\x0e\xc5\x7d\x63\x41\x94\x71\x5e\xce\x24\x4e\x2e\xda\xc6\x2c\xd8\x10\xd4\x8e\xe6\xd9\xc4\x01\x1e\x8c\xf7\xba\x98\x15\x6a\x05\xb0\xc7\x99\x74\x2c\x58\x08\xce\xb0\xf7\x35\x9f\x1b\x14\x9b\xb4\x5f\x9e\xd8\xc9\xb0\x7b\x82\xda\xd6\xbe\xea\x0f\x3e\x03\xcc\x86\x9b\xb7\xde\xe5\x77\x2f\x5b\x2f\xc6\x7a\x02\x72\x78\x20\x38\xba\xa8\x11\x81\xfa\xac\xbd\x35\xb6\x5f\xf8\x4e\x67\xf4\xa8\x2a\x17\xe9\x80\x26\xe1\xfb\x3b\x1b\x85\x22\x79\x77\xa3\x7a\x58\xa4\xaf\x6b\x5b\xcb\x2c\xd3\x5d\xd5\x2e\x94\xea\x98\x97\x67\xc4\xec\x56\x1a\x45\x1f\xec\x1b\x8c\x32\x2a\x9e\xb2\x5e\x7a\xf0\x01\xd5\x87\xc8\x4a\x9f\x5d\x0d\x4a\x13\xfd\xa4\xe6\x78\xfd\xa9\x77\x8b\x9c\x86\x40\x87\xdd\x20\x09\x4b\xe7\x5c\x45\xc0\x76\x88\x49\x7b\x4d\xc1\xf0\x16\x91\xa0\x78\x31\x9b\x67\x04\x9b\xc8\xac\xff\x91\x5b\x44\x23\x3f\x73\x23\x68\x64\x54\xe6\xda\x88\x4b\x92\x77\x24\xb5\x55\xce\xf8\x4c\x5a\x36\x18\x2b\x8e\x27\xd6\x1e\x9c\xbb\x5f\x91\x63\x29\xc3\x94\x75\xe0\x14\x2a\xc0\x4a\x4e\xd2\x70\x26\x1f\x78\x9e\x70\x09\x98\xe6\x85\x86\x7c\xc3\x70\xa5\xdb\x32\x7a\xe0\x08\x38\x74\x68\x64\xde\x23\xf3\x6a\x6a\x40\xe5\x9c\xff\x27\xf3\xbf\xbf\xff\xd3\xff\x0d\x00\x00\xff\xff\x48\x2f\x2f\x28\xd9\xeb\x06\x00") func adminSwaggerJsonBytes() ([]byte, error) { return bindataRead( @@ -93,7 +93,7 @@ func adminSwaggerJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "admin.swagger.json", size: 436128, mode: os.FileMode(420), modTime: time.Unix(1562572800, 0)} + info := bindataFileInfo{name: "admin.swagger.json", size: 453593, mode: os.FileMode(420), modTime: time.Unix(1562572800, 0)} a := &asset{bytes: bytes, info: info} return a, nil } diff --git a/flyteidl/gen/pb-go/flyteidl/service/signal.pb.go b/flyteidl/gen/pb-go/flyteidl/service/signal.pb.go index 02d6a8c7be..3ad109ae7d 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/signal.pb.go +++ b/flyteidl/gen/pb-go/flyteidl/service/signal.pb.go @@ -29,27 +29,30 @@ const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package func init() { proto.RegisterFile("flyteidl/service/signal.proto", fileDescriptor_ca211d25a1023377) } var fileDescriptor_ca211d25a1023377 = []byte{ - // 317 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x92, 0xc1, 0x4a, 0xf4, 0x30, - 0x14, 0x85, 0xff, 0xf9, 0x05, 0xc1, 0x8a, 0xa8, 0x41, 0x5c, 0x54, 0x05, 0xa7, 0x2b, 0x11, 0x6c, - 0x50, 0x77, 0x82, 0x08, 0xba, 0x70, 0x23, 0x08, 0x76, 0x21, 0xb8, 0x19, 0x32, 0xed, 0x9d, 0x18, - 0x27, 0xcd, 0xad, 0x49, 0x66, 0x46, 0x91, 0xd9, 0xf8, 0x0a, 0xee, 0x7c, 0x1b, 0x9f, 0xc1, 0x57, - 0xf0, 0x41, 0xa4, 0x49, 0xa7, 0xe8, 0xd0, 0xba, 0x0b, 0xe7, 0x7c, 0x9c, 0xdc, 0x93, 0x9b, 0x60, - 0x67, 0x20, 0x9f, 0x2d, 0x88, 0x4c, 0x52, 0x03, 0x7a, 0x2c, 0x52, 0xa0, 0x46, 0x70, 0xc5, 0x64, - 0x5c, 0x68, 0xb4, 0x48, 0xd6, 0x66, 0x76, 0x5c, 0xd9, 0xe1, 0x36, 0x47, 0xe4, 0x12, 0x28, 0x2b, - 0x04, 0x65, 0x4a, 0xa1, 0x65, 0x56, 0xa0, 0x32, 0x9e, 0x0f, 0xb7, 0xea, 0x38, 0x96, 0xe5, 0x42, - 0xfd, 0x0a, 0x3b, 0x7a, 0x5f, 0x08, 0x56, 0x12, 0x27, 0x24, 0x3e, 0x8c, 0xdc, 0x06, 0xeb, 0x97, - 0x60, 0xaf, 0xf5, 0x85, 0x06, 0x66, 0xc1, 0x7b, 0x64, 0x2f, 0xae, 0x2f, 0x75, 0x21, 0xb1, 0xd7, - 0x7f, 0x80, 0x37, 0xf0, 0x38, 0x02, 0x63, 0xc3, 0xcd, 0x66, 0x32, 0xfa, 0x47, 0x3e, 0x3a, 0xc1, - 0xf2, 0x95, 0x30, 0xd6, 0x0b, 0x86, 0x74, 0x9b, 0xc9, 0x12, 0x99, 0x85, 0x85, 0xed, 0x48, 0x64, - 0x5e, 0x3f, 0xbf, 0xde, 0xfe, 0xe7, 0x64, 0xe8, 0x6a, 0x8f, 0x0f, 0xab, 0x5e, 0x86, 0xbe, 0x4c, - 0x50, 0x0f, 0x07, 0x12, 0x27, 0x3d, 0x78, 0x82, 0x74, 0x54, 0x3e, 0x45, 0x4f, 0x64, 0x65, 0xdf, - 0x07, 0x48, 0xed, 0xb4, 0xcd, 0xcf, 0x30, 0x67, 0x42, 0xb5, 0xda, 0x8a, 0xe5, 0x30, 0x25, 0x32, - 0x58, 0x4a, 0xa0, 0x6a, 0x40, 0x76, 0x9b, 0xa7, 0x4b, 0xa0, 0x9e, 0xbf, 0xfb, 0x07, 0x61, 0x0a, - 0x54, 0x06, 0xa2, 0xd0, 0xd5, 0xd8, 0x88, 0x56, 0xe7, 0x6a, 0x9c, 0x74, 0xf6, 0xcf, 0xcf, 0xee, - 0x4e, 0xb9, 0xb0, 0xf7, 0xa3, 0x7e, 0x9c, 0x62, 0x4e, 0x5d, 0x14, 0x6a, 0xee, 0x0f, 0xb4, 0xde, - 0x2a, 0x07, 0x45, 0x8b, 0xfe, 0x01, 0x47, 0x3a, 0xff, 0x6f, 0xfa, 0x8b, 0x6e, 0xc9, 0xc7, 0xdf, - 0x01, 0x00, 0x00, 0xff, 0xff, 0xa0, 0x03, 0x65, 0xd6, 0x52, 0x02, 0x00, 0x00, + // 356 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x92, 0x41, 0x4b, 0xeb, 0x40, + 0x14, 0x85, 0x5f, 0xca, 0xe3, 0xc1, 0x8b, 0x88, 0x3a, 0x0b, 0x17, 0x51, 0xc1, 0x66, 0xa5, 0x05, + 0x33, 0xa8, 0xbb, 0x82, 0x08, 0x2a, 0x08, 0x22, 0x08, 0x66, 0x21, 0x74, 0x53, 0xa6, 0xc9, 0xed, + 0x38, 0x36, 0x99, 0x1b, 0x33, 0xd3, 0x56, 0x91, 0x6e, 0x04, 0x57, 0x82, 0x1b, 0xb7, 0xfe, 0x2b, + 0x5d, 0xbb, 0xf2, 0x77, 0x88, 0x64, 0xd2, 0x06, 0xad, 0x89, 0x3b, 0x77, 0xe1, 0x9e, 0x2f, 0xe7, + 0xce, 0x39, 0x5c, 0x7b, 0xa5, 0x1b, 0x5d, 0x6b, 0x10, 0x61, 0x44, 0x15, 0xa4, 0x03, 0x11, 0x00, + 0x55, 0x82, 0x4b, 0x16, 0x79, 0x49, 0x8a, 0x1a, 0xc9, 0xfc, 0x44, 0xf6, 0xc6, 0xb2, 0xb3, 0xcc, + 0x11, 0x79, 0x04, 0x94, 0x25, 0x82, 0x32, 0x29, 0x51, 0x33, 0x2d, 0x50, 0xaa, 0x9c, 0x77, 0x96, + 0x0a, 0x3b, 0x16, 0xc6, 0x42, 0x7e, 0x31, 0xdb, 0x7a, 0xfd, 0x6b, 0xcf, 0xfa, 0x66, 0xe0, 0xe7, + 0x66, 0xe4, 0xcc, 0x5e, 0x38, 0x04, 0x7d, 0x92, 0xee, 0xa7, 0xc0, 0x34, 0xe4, 0x1a, 0x59, 0xf3, + 0x8a, 0xa5, 0xc6, 0xc4, 0xcb, 0xe7, 0x9f, 0xc0, 0x53, 0xb8, 0xec, 0x83, 0xd2, 0xce, 0x62, 0x39, + 0xe9, 0xfe, 0x21, 0x2f, 0x35, 0x7b, 0xe6, 0x58, 0x28, 0x9d, 0x0f, 0x14, 0xa9, 0x97, 0x93, 0x19, + 0x32, 0x31, 0x73, 0xaa, 0x11, 0xf7, 0xae, 0x76, 0xfb, 0xfc, 0xf6, 0x58, 0x7b, 0xb7, 0x48, 0xcf, + 0x04, 0x1f, 0x6c, 0x8e, 0x93, 0x29, 0x7a, 0x33, 0xc4, 0xb4, 0xd7, 0x8d, 0x70, 0xd8, 0x86, 0x2b, + 0x08, 0xfa, 0x59, 0x19, 0x6d, 0x11, 0x66, 0x89, 0x2f, 0x20, 0xd0, 0xa3, 0x2a, 0x3d, 0xc4, 0x98, + 0x09, 0x59, 0x29, 0x4b, 0x16, 0xc3, 0xa8, 0xf5, 0x60, 0x91, 0x7b, 0x6b, 0x7a, 0x21, 0xa6, 0xbc, + 0xea, 0x2f, 0x4c, 0xf9, 0xe8, 0x37, 0x1f, 0x44, 0x9e, 0x2c, 0xfb, 0xbf, 0x0f, 0xe3, 0x56, 0xc9, + 0x6a, 0x79, 0x63, 0x3e, 0x14, 0x9d, 0xd6, 0x7f, 0x20, 0x54, 0x82, 0x52, 0x81, 0x7b, 0x64, 0x9a, + 0x3d, 0x70, 0xe7, 0xa6, 0x72, 0x36, 0xad, 0x46, 0xcb, 0x73, 0xd7, 0x4b, 0xd3, 0x8b, 0xd0, 0xfb, + 0x96, 0xbb, 0x69, 0x35, 0xf6, 0x76, 0x5b, 0x3b, 0x5c, 0xe8, 0xf3, 0x7e, 0xc7, 0x0b, 0x30, 0xa6, + 0x66, 0x75, 0xc6, 0x9b, 0x0f, 0x5a, 0x5c, 0x26, 0x07, 0x49, 0x93, 0xce, 0x06, 0x47, 0x3a, 0x7d, + 0xfb, 0x9d, 0x7f, 0xe6, 0x50, 0xb7, 0x3f, 0x02, 0x00, 0x00, 0xff, 0xff, 0x52, 0xf5, 0x8e, 0x13, + 0x16, 0x03, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/flyteidl/gen/pb-go/flyteidl/service/signal.pb.gw.go b/flyteidl/gen/pb-go/flyteidl/service/signal.pb.gw.go index 43397bb36e..e0ba6b6ef4 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/signal.pb.gw.go +++ b/flyteidl/gen/pb-go/flyteidl/service/signal.pb.gw.go @@ -89,6 +89,77 @@ func request_SignalService_ListSignals_0(ctx context.Context, marshaler runtime. } +var ( + filter_SignalService_ListSignals_1 = &utilities.DoubleArray{Encoding: map[string]int{"workflow_execution_id": 0, "org": 1, "project": 2, "domain": 3, "name": 4}, Base: []int{1, 1, 1, 2, 3, 4, 0, 0, 0, 0}, Check: []int{0, 1, 2, 2, 2, 2, 3, 4, 5, 6}} +) + +func request_SignalService_ListSignals_1(ctx context.Context, marshaler runtime.Marshaler, client SignalServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.SignalListRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["workflow_execution_id.org"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "workflow_execution_id.org") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "workflow_execution_id.org", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "workflow_execution_id.org", err) + } + + val, ok = pathParams["workflow_execution_id.project"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "workflow_execution_id.project") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "workflow_execution_id.project", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "workflow_execution_id.project", err) + } + + val, ok = pathParams["workflow_execution_id.domain"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "workflow_execution_id.domain") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "workflow_execution_id.domain", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "workflow_execution_id.domain", err) + } + + val, ok = pathParams["workflow_execution_id.name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "workflow_execution_id.name") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "workflow_execution_id.name", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "workflow_execution_id.name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_SignalService_ListSignals_1); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.ListSignals(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + func request_SignalService_SetSignal_0(ctx context.Context, marshaler runtime.Marshaler, client SignalServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq admin.SignalSetRequest var metadata runtime.ServerMetadata @@ -106,6 +177,41 @@ func request_SignalService_SetSignal_0(ctx context.Context, marshaler runtime.Ma } +func request_SignalService_SetSignal_1(ctx context.Context, marshaler runtime.Marshaler, client SignalServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq admin.SignalSetRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["id.execution_id.org"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id.execution_id.org") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "id.execution_id.org", val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id.execution_id.org", err) + } + + msg, err := client.SetSignal(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + // RegisterSignalServiceHandlerFromEndpoint is same as RegisterSignalServiceHandler but // automatically dials to "endpoint" and closes the connection when "ctx" gets done. func RegisterSignalServiceHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { @@ -164,6 +270,26 @@ func RegisterSignalServiceHandlerClient(ctx context.Context, mux *runtime.ServeM }) + mux.Handle("GET", pattern_SignalService_ListSignals_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_SignalService_ListSignals_1(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_SignalService_ListSignals_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("POST", pattern_SignalService_SetSignal_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -184,17 +310,45 @@ func RegisterSignalServiceHandlerClient(ctx context.Context, mux *runtime.ServeM }) + mux.Handle("POST", pattern_SignalService_SetSignal_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_SignalService_SetSignal_1(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_SignalService_SetSignal_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + return nil } var ( pattern_SignalService_ListSignals_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5}, []string{"api", "v1", "signals", "workflow_execution_id.project", "workflow_execution_id.domain", "workflow_execution_id.name"}, "")) + pattern_SignalService_ListSignals_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5, 1, 0, 4, 1, 5, 6, 1, 0, 4, 1, 5, 7}, []string{"api", "v1", "signals", "org", "workflow_execution_id.org", "workflow_execution_id.project", "workflow_execution_id.domain", "workflow_execution_id.name"}, "")) + pattern_SignalService_SetSignal_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v1", "signals"}, "")) + + pattern_SignalService_SetSignal_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"api", "v1", "signals", "org", "id.execution_id.org"}, "")) ) var ( forward_SignalService_ListSignals_0 = runtime.ForwardResponseMessage + forward_SignalService_ListSignals_1 = runtime.ForwardResponseMessage + forward_SignalService_SetSignal_0 = runtime.ForwardResponseMessage + + forward_SignalService_SetSignal_1 = runtime.ForwardResponseMessage ) diff --git a/flyteidl/gen/pb-go/flyteidl/service/signal.swagger.json b/flyteidl/gen/pb-go/flyteidl/service/signal.swagger.json index c5dafce8b2..39b3f3e777 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/signal.swagger.json +++ b/flyteidl/gen/pb-go/flyteidl/service/signal.swagger.json @@ -42,6 +42,128 @@ ] } }, + "/api/v1/signals/org/{id.execution_id.org}": { + "post": { + "summary": "Sets the value on a :ref:`ref_flyteidl.admin.Signal` definition", + "operationId": "SetSignal2", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminSignalSetResponse" + } + } + }, + "parameters": [ + { + "name": "id.execution_id.org", + "description": "Optional, org key applied to the resource.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/adminSignalSetRequest" + } + } + ], + "tags": [ + "SignalService" + ] + } + }, + "/api/v1/signals/org/{workflow_execution_id.org}/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name}": { + "get": { + "summary": "Fetch a list of :ref:`ref_flyteidl.admin.Signal` definitions.", + "operationId": "ListSignals2", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminSignalList" + } + } + }, + "parameters": [ + { + "name": "workflow_execution_id.org", + "description": "Optional, org key applied to the resource.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "workflow_execution_id.project", + "description": "Name of the project the resource belongs to.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "workflow_execution_id.domain", + "description": "Name of the domain the resource belongs to.\nA domain can be considered as a subset within a specific project.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "workflow_execution_id.name", + "description": "User or system provided value for the resource.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "limit", + "description": "Indicates the number of resources to be returned.\n+required.", + "in": "query", + "required": false, + "type": "integer", + "format": "int64" + }, + { + "name": "token", + "description": "In the case of multiple pages of results, the, server-provided token can be used to fetch the next page\nin a query.\n+optional.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "filters", + "description": "Indicates a list of filters passed as string.\n+optional.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "sort_by.key", + "description": "Indicates an attribute to sort the response values.\n+required.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "sort_by.direction", + "description": "Indicates the direction to apply sort key for response values.\n+optional.\n\n - DESCENDING: By default, fields are sorted in descending order.", + "in": "query", + "required": false, + "type": "string", + "enum": [ + "DESCENDING", + "ASCENDING" + ], + "default": "DESCENDING" + } + ], + "tags": [ + "SignalService" + ] + } + }, "/api/v1/signals/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name}": { "get": { "summary": "Fetch a list of :ref:`ref_flyteidl.admin.Signal` definitions.", diff --git a/flyteidl/gen/pb-java/flyteidl/admin/MatchableResourceOuterClass.java b/flyteidl/gen/pb-java/flyteidl/admin/MatchableResourceOuterClass.java index c359966b35..18a56d8164 100644 --- a/flyteidl/gen/pb-java/flyteidl/admin/MatchableResourceOuterClass.java +++ b/flyteidl/gen/pb-java/flyteidl/admin/MatchableResourceOuterClass.java @@ -11854,6 +11854,24 @@ public interface ListMatchableAttributesRequestOrBuilder extends * .flyteidl.admin.MatchableResource resource_type = 1; */ flyteidl.admin.MatchableResourceOuterClass.MatchableResource getResourceType(); + + /** + *
+     * Optional, org filter applied to list project requests.
+     * 
+ * + * string org = 2; + */ + java.lang.String getOrg(); + /** + *
+     * Optional, org filter applied to list project requests.
+     * 
+ * + * string org = 2; + */ + com.google.protobuf.ByteString + getOrgBytes(); } /** *
@@ -11874,6 +11892,7 @@ private ListMatchableAttributesRequest(com.google.protobuf.GeneratedMessageV3.Bu
     }
     private ListMatchableAttributesRequest() {
       resourceType_ = 0;
+      org_ = "";
     }
 
     @java.lang.Override
@@ -11906,6 +11925,12 @@ private ListMatchableAttributesRequest(
               resourceType_ = rawValue;
               break;
             }
+            case 18: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              org_ = s;
+              break;
+            }
             default: {
               if (!parseUnknownField(
                   input, unknownFields, extensionRegistry, tag)) {
@@ -11963,6 +11988,48 @@ public flyteidl.admin.MatchableResourceOuterClass.MatchableResource getResourceT
       return result == null ? flyteidl.admin.MatchableResourceOuterClass.MatchableResource.UNRECOGNIZED : result;
     }
 
+    public static final int ORG_FIELD_NUMBER = 2;
+    private volatile java.lang.Object org_;
+    /**
+     * 
+     * Optional, org filter applied to list project requests.
+     * 
+ * + * string org = 2; + */ + public java.lang.String getOrg() { + java.lang.Object ref = org_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + org_ = s; + return s; + } + } + /** + *
+     * Optional, org filter applied to list project requests.
+     * 
+ * + * string org = 2; + */ + public com.google.protobuf.ByteString + getOrgBytes() { + java.lang.Object ref = org_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + org_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { @@ -11980,6 +12047,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) if (resourceType_ != flyteidl.admin.MatchableResourceOuterClass.MatchableResource.TASK_RESOURCE.getNumber()) { output.writeEnum(1, resourceType_); } + if (!getOrgBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, org_); + } unknownFields.writeTo(output); } @@ -11993,6 +12063,9 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream .computeEnumSize(1, resourceType_); } + if (!getOrgBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, org_); + } size += unknownFields.getSerializedSize(); memoizedSize = size; return size; @@ -12009,6 +12082,8 @@ public boolean equals(final java.lang.Object obj) { flyteidl.admin.MatchableResourceOuterClass.ListMatchableAttributesRequest other = (flyteidl.admin.MatchableResourceOuterClass.ListMatchableAttributesRequest) obj; if (resourceType_ != other.resourceType_) return false; + if (!getOrg() + .equals(other.getOrg())) return false; if (!unknownFields.equals(other.unknownFields)) return false; return true; } @@ -12022,6 +12097,8 @@ public int hashCode() { hash = (19 * hash) + getDescriptor().hashCode(); hash = (37 * hash) + RESOURCE_TYPE_FIELD_NUMBER; hash = (53 * hash) + resourceType_; + hash = (37 * hash) + ORG_FIELD_NUMBER; + hash = (53 * hash) + getOrg().hashCode(); hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; @@ -12162,6 +12239,8 @@ public Builder clear() { super.clear(); resourceType_ = 0; + org_ = ""; + return this; } @@ -12189,6 +12268,7 @@ public flyteidl.admin.MatchableResourceOuterClass.ListMatchableAttributesRequest public flyteidl.admin.MatchableResourceOuterClass.ListMatchableAttributesRequest buildPartial() { flyteidl.admin.MatchableResourceOuterClass.ListMatchableAttributesRequest result = new flyteidl.admin.MatchableResourceOuterClass.ListMatchableAttributesRequest(this); result.resourceType_ = resourceType_; + result.org_ = org_; onBuilt(); return result; } @@ -12240,6 +12320,10 @@ public Builder mergeFrom(flyteidl.admin.MatchableResourceOuterClass.ListMatchabl if (other.resourceType_ != 0) { setResourceTypeValue(other.getResourceTypeValue()); } + if (!other.getOrg().isEmpty()) { + org_ = other.org_; + onChanged(); + } this.mergeUnknownFields(other.unknownFields); onChanged(); return this; @@ -12333,6 +12417,95 @@ public Builder clearResourceType() { onChanged(); return this; } + + private java.lang.Object org_ = ""; + /** + *
+       * Optional, org filter applied to list project requests.
+       * 
+ * + * string org = 2; + */ + public java.lang.String getOrg() { + java.lang.Object ref = org_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + org_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * Optional, org filter applied to list project requests.
+       * 
+ * + * string org = 2; + */ + public com.google.protobuf.ByteString + getOrgBytes() { + java.lang.Object ref = org_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + org_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * Optional, org filter applied to list project requests.
+       * 
+ * + * string org = 2; + */ + public Builder setOrg( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + org_ = value; + onChanged(); + return this; + } + /** + *
+       * Optional, org filter applied to list project requests.
+       * 
+ * + * string org = 2; + */ + public Builder clearOrg() { + + org_ = getDefaultInstance().getOrg(); + onChanged(); + return this; + } + /** + *
+       * Optional, org filter applied to list project requests.
+       * 
+ * + * string org = 2; + */ + public Builder setOrgBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + org_ = value; + onChanged(); + return this; + } @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { @@ -13304,19 +13477,20 @@ public flyteidl.admin.MatchableResourceOuterClass.ListMatchableAttributesRespons "ributes\030\001 \001(\0132\".flyteidl.admin.MatchingA" + "ttributes\022\016\n\006domain\030\002 \001(\t\022\017\n\007project\030\003 \001" + "(\t\022\020\n\010workflow\030\004 \001(\t\022\023\n\013launch_plan\030\005 \001(" + - "\t\022\013\n\003org\030\006 \001(\t\"Z\n\036ListMatchableAttribute" + + "\t\022\013\n\003org\030\006 \001(\t\"g\n\036ListMatchableAttribute" + "sRequest\0228\n\rresource_type\030\001 \001(\0162!.flytei" + - "dl.admin.MatchableResource\"k\n\037ListMatcha" + - "bleAttributesResponse\022H\n\016configurations\030" + - "\001 \003(\01320.flyteidl.admin.MatchableAttribut" + - "esConfiguration*\340\001\n\021MatchableResource\022\021\n" + - "\rTASK_RESOURCE\020\000\022\024\n\020CLUSTER_RESOURCE\020\001\022\023" + - "\n\017EXECUTION_QUEUE\020\002\022\033\n\027EXECUTION_CLUSTER" + - "_LABEL\020\003\022$\n QUALITY_OF_SERVICE_SPECIFICA" + - "TION\020\004\022\023\n\017PLUGIN_OVERRIDE\020\005\022\035\n\031WORKFLOW_" + - "EXECUTION_CONFIG\020\006\022\026\n\022CLUSTER_ASSIGNMENT" + - "\020\007B=Z;github.com/flyteorg/flyte/flyteidl" + - "/gen/pb-go/flyteidl/adminb\006proto3" + "dl.admin.MatchableResource\022\013\n\003org\030\002 \001(\t\"" + + "k\n\037ListMatchableAttributesResponse\022H\n\016co" + + "nfigurations\030\001 \003(\01320.flyteidl.admin.Matc" + + "hableAttributesConfiguration*\340\001\n\021Matchab" + + "leResource\022\021\n\rTASK_RESOURCE\020\000\022\024\n\020CLUSTER" + + "_RESOURCE\020\001\022\023\n\017EXECUTION_QUEUE\020\002\022\033\n\027EXEC" + + "UTION_CLUSTER_LABEL\020\003\022$\n QUALITY_OF_SERV" + + "ICE_SPECIFICATION\020\004\022\023\n\017PLUGIN_OVERRIDE\020\005" + + "\022\035\n\031WORKFLOW_EXECUTION_CONFIG\020\006\022\026\n\022CLUST" + + "ER_ASSIGNMENT\020\007B=Z;github.com/flyteorg/f" + + "lyte/flyteidl/gen/pb-go/flyteidl/adminb\006" + + "proto3" }; com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() { @@ -13406,7 +13580,7 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors( internal_static_flyteidl_admin_ListMatchableAttributesRequest_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_flyteidl_admin_ListMatchableAttributesRequest_descriptor, - new java.lang.String[] { "ResourceType", }); + new java.lang.String[] { "ResourceType", "Org", }); internal_static_flyteidl_admin_ListMatchableAttributesResponse_descriptor = getDescriptor().getMessageTypes().get(11); internal_static_flyteidl_admin_ListMatchableAttributesResponse_fieldAccessorTable = new diff --git a/flyteidl/gen/pb-java/flyteidl/admin/ProjectOuterClass.java b/flyteidl/gen/pb-java/flyteidl/admin/ProjectOuterClass.java index ccae7fde2c..f00680e1b0 100644 --- a/flyteidl/gen/pb-java/flyteidl/admin/ProjectOuterClass.java +++ b/flyteidl/gen/pb-java/flyteidl/admin/ProjectOuterClass.java @@ -3789,6 +3789,24 @@ public interface ProjectListRequestOrBuilder extends * .flyteidl.admin.Sort sort_by = 4; */ flyteidl.admin.Common.SortOrBuilder getSortByOrBuilder(); + + /** + *
+     * Optional, org filter applied to list project requests.
+     * 
+ * + * string org = 5; + */ + java.lang.String getOrg(); + /** + *
+     * Optional, org filter applied to list project requests.
+     * 
+ * + * string org = 5; + */ + com.google.protobuf.ByteString + getOrgBytes(); } /** *
@@ -3810,6 +3828,7 @@ private ProjectListRequest(com.google.protobuf.GeneratedMessageV3.Builder bui
     private ProjectListRequest() {
       token_ = "";
       filters_ = "";
+      org_ = "";
     }
 
     @java.lang.Override
@@ -3866,6 +3885,12 @@ private ProjectListRequest(
 
               break;
             }
+            case 42: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              org_ = s;
+              break;
+            }
             default: {
               if (!parseUnknownField(
                   input, unknownFields, extensionRegistry, tag)) {
@@ -4040,6 +4065,48 @@ public flyteidl.admin.Common.SortOrBuilder getSortByOrBuilder() {
       return getSortBy();
     }
 
+    public static final int ORG_FIELD_NUMBER = 5;
+    private volatile java.lang.Object org_;
+    /**
+     * 
+     * Optional, org filter applied to list project requests.
+     * 
+ * + * string org = 5; + */ + public java.lang.String getOrg() { + java.lang.Object ref = org_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + org_ = s; + return s; + } + } + /** + *
+     * Optional, org filter applied to list project requests.
+     * 
+ * + * string org = 5; + */ + public com.google.protobuf.ByteString + getOrgBytes() { + java.lang.Object ref = org_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + org_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { @@ -4066,6 +4133,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) if (sortBy_ != null) { output.writeMessage(4, getSortBy()); } + if (!getOrgBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 5, org_); + } unknownFields.writeTo(output); } @@ -4089,6 +4159,9 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream .computeMessageSize(4, getSortBy()); } + if (!getOrgBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, org_); + } size += unknownFields.getSerializedSize(); memoizedSize = size; return size; @@ -4115,6 +4188,8 @@ public boolean equals(final java.lang.Object obj) { if (!getSortBy() .equals(other.getSortBy())) return false; } + if (!getOrg() + .equals(other.getOrg())) return false; if (!unknownFields.equals(other.unknownFields)) return false; return true; } @@ -4136,6 +4211,8 @@ public int hashCode() { hash = (37 * hash) + SORT_BY_FIELD_NUMBER; hash = (53 * hash) + getSortBy().hashCode(); } + hash = (37 * hash) + ORG_FIELD_NUMBER; + hash = (53 * hash) + getOrg().hashCode(); hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; @@ -4286,6 +4363,8 @@ public Builder clear() { sortBy_ = null; sortByBuilder_ = null; } + org_ = ""; + return this; } @@ -4320,6 +4399,7 @@ public flyteidl.admin.ProjectOuterClass.ProjectListRequest buildPartial() { } else { result.sortBy_ = sortByBuilder_.build(); } + result.org_ = org_; onBuilt(); return result; } @@ -4382,6 +4462,10 @@ public Builder mergeFrom(flyteidl.admin.ProjectOuterClass.ProjectListRequest oth if (other.hasSortBy()) { mergeSortBy(other.getSortBy()); } + if (!other.getOrg().isEmpty()) { + org_ = other.org_; + onChanged(); + } this.mergeUnknownFields(other.unknownFields); onChanged(); return this; @@ -4811,6 +4895,95 @@ public flyteidl.admin.Common.SortOrBuilder getSortByOrBuilder() { } return sortByBuilder_; } + + private java.lang.Object org_ = ""; + /** + *
+       * Optional, org filter applied to list project requests.
+       * 
+ * + * string org = 5; + */ + public java.lang.String getOrg() { + java.lang.Object ref = org_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + org_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * Optional, org filter applied to list project requests.
+       * 
+ * + * string org = 5; + */ + public com.google.protobuf.ByteString + getOrgBytes() { + java.lang.Object ref = org_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + org_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * Optional, org filter applied to list project requests.
+       * 
+ * + * string org = 5; + */ + public Builder setOrg( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + org_ = value; + onChanged(); + return this; + } + /** + *
+       * Optional, org filter applied to list project requests.
+       * 
+ * + * string org = 5; + */ + public Builder clearOrg() { + + org_ = getDefaultInstance().getOrg(); + onChanged(); + return this; + } + /** + *
+       * Optional, org filter applied to list project requests.
+       * 
+ * + * string org = 5; + */ + public Builder setOrgBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + org_ = value; + onChanged(); + return this; + } @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { @@ -6433,14 +6606,15 @@ public flyteidl.admin.ProjectOuterClass.ProjectUpdateResponse getDefaultInstance "\014ProjectState\022\n\n\006ACTIVE\020\000\022\014\n\010ARCHIVED\020\001\022" + "\024\n\020SYSTEM_GENERATED\020\002\"D\n\010Projects\022)\n\010pro" + "jects\030\001 \003(\0132\027.flyteidl.admin.Project\022\r\n\005" + - "token\030\002 \001(\t\"j\n\022ProjectListRequest\022\r\n\005lim" + + "token\030\002 \001(\t\"w\n\022ProjectListRequest\022\r\n\005lim" + "it\030\001 \001(\r\022\r\n\005token\030\002 \001(\t\022\017\n\007filters\030\003 \001(\t" + - "\022%\n\007sort_by\030\004 \001(\0132\024.flyteidl.admin.Sort\"" + - "B\n\026ProjectRegisterRequest\022(\n\007project\030\001 \001" + - "(\0132\027.flyteidl.admin.Project\"\031\n\027ProjectRe" + - "gisterResponse\"\027\n\025ProjectUpdateResponseB" + - "=Z;github.com/flyteorg/flyte/flyteidl/ge" + - "n/pb-go/flyteidl/adminb\006proto3" + "\022%\n\007sort_by\030\004 \001(\0132\024.flyteidl.admin.Sort\022" + + "\013\n\003org\030\005 \001(\t\"B\n\026ProjectRegisterRequest\022(" + + "\n\007project\030\001 \001(\0132\027.flyteidl.admin.Project" + + "\"\031\n\027ProjectRegisterResponse\"\027\n\025ProjectUp" + + "dateResponseB=Z;github.com/flyteorg/flyt" + + "e/flyteidl/gen/pb-go/flyteidl/adminb\006pro" + + "to3" }; com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() { @@ -6478,7 +6652,7 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors( internal_static_flyteidl_admin_ProjectListRequest_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_flyteidl_admin_ProjectListRequest_descriptor, - new java.lang.String[] { "Limit", "Token", "Filters", "SortBy", }); + new java.lang.String[] { "Limit", "Token", "Filters", "SortBy", "Org", }); internal_static_flyteidl_admin_ProjectRegisterRequest_descriptor = getDescriptor().getMessageTypes().get(4); internal_static_flyteidl_admin_ProjectRegisterRequest_fieldAccessorTable = new diff --git a/flyteidl/gen/pb-java/flyteidl/service/Admin.java b/flyteidl/gen/pb-java/flyteidl/service/Admin.java index 5da7b673b4..9de7851811 100644 --- a/flyteidl/gen/pb-java/flyteidl/service/Admin.java +++ b/flyteidl/gen/pb-java/flyteidl/service/Admin.java @@ -38,371 +38,387 @@ public static void registerAllExtensions( "admin/task_execution.proto\032\034flyteidl/adm" + "in/version.proto\032\033flyteidl/admin/common." + "proto\032\'flyteidl/admin/description_entity" + - ".proto2\265q\n\014AdminService\022m\n\nCreateTask\022!." + - "flyteidl.admin.TaskCreateRequest\032\".flyte" + - "idl.admin.TaskCreateResponse\"\030\202\323\344\223\002\022\"\r/a" + - "pi/v1/tasks:\001*\022\330\001\n\007GetTask\022 .flyteidl.ad" + - "min.ObjectGetRequest\032\024.flyteidl.admin.Ta" + - "sk\"\224\001\202\323\344\223\002\215\001\022=/api/v1/tasks/{id.project}" + - "/{id.domain}/{id.name}/{id.version}ZL\022J/" + - "api/v1/tasks/org/{id.org}/{id.project}/{" + - "id.domain}/{id.name}/{id.version}\022\305\001\n\013Li" + - "stTaskIds\0220.flyteidl.admin.NamedEntityId" + - "entifierListRequest\032).flyteidl.admin.Nam" + - "edEntityIdentifierList\"Y\202\323\344\223\002S\022#/api/v1/" + - "task_ids/{project}/{domain}Z,\022*/api/v1/t" + - "asks/org/{org}/{project}/{domain}\022\250\002\n\tLi" + - "stTasks\022#.flyteidl.admin.ResourceListReq" + - "uest\032\030.flyteidl.admin.TaskList\"\333\001\202\323\344\223\002\324\001" + - "\0220/api/v1/tasks/{id.project}/{id.domain}" + - "/{id.name}Z?\022=/api/v1/tasks/org/{id.org}" + - "/{id.project}/{id.domain}/{id.name}Z(\022&/" + - "api/v1/tasks/{id.project}/{id.domain}Z5\022" + - "3/api/v1/tasks/org/{id.org}/{id.project}" + - "/{id.domain}\022}\n\016CreateWorkflow\022%.flyteid" + - "l.admin.WorkflowCreateRequest\032&.flyteidl" + - ".admin.WorkflowCreateResponse\"\034\202\323\344\223\002\026\"\021/" + - "api/v1/workflows:\001*\022\350\001\n\013GetWorkflow\022 .fl" + - "yteidl.admin.ObjectGetRequest\032\030.flyteidl" + - ".admin.Workflow\"\234\001\202\323\344\223\002\225\001\022A/api/v1/workf" + - "lows/{id.project}/{id.domain}/{id.name}/" + - "{id.version}ZP\022N/api/v1/workflows/org/{i" + - "d.org}/{id.project}/{id.domain}/{id.name" + - "}/{id.version}\022\321\001\n\017ListWorkflowIds\0220.fly" + - "teidl.admin.NamedEntityIdentifierListReq" + - "uest\032).flyteidl.admin.NamedEntityIdentif" + - "ierList\"a\202\323\344\223\002[\022\'/api/v1/workflow_ids/{p" + - "roject}/{domain}Z0\022./api/v1/workflows/or" + - "g/{org}/{project}/{domain}\022\300\002\n\rListWorkf" + - "lows\022#.flyteidl.admin.ResourceListReques" + - "t\032\034.flyteidl.admin.WorkflowList\"\353\001\202\323\344\223\002\344" + - "\001\0224/api/v1/workflows/{id.project}/{id.do" + - "main}/{id.name}ZC\022A/api/v1/workflows/org" + - "/{id.org}/{id.project}/{id.domain}/{id.n" + - "ame}Z,\022*/api/v1/workflows/{id.project}/{" + - "id.domain}Z9\0227/api/v1/workflows/org/{id." + - "org}/{id.project}/{id.domain}\022\206\001\n\020Create" + - "LaunchPlan\022\'.flyteidl.admin.LaunchPlanCr" + - "eateRequest\032(.flyteidl.admin.LaunchPlanC" + - "reateResponse\"\037\202\323\344\223\002\031\"\024/api/v1/launch_pl" + - "ans:\001*\022\362\001\n\rGetLaunchPlan\022 .flyteidl.admi" + - "n.ObjectGetRequest\032\032.flyteidl.admin.Laun" + - "chPlan\"\242\001\202\323\344\223\002\233\001\022D/api/v1/launch_plans/{" + + ".proto2\227v\n\014AdminService\022\216\001\n\nCreateTask\022!" + + ".flyteidl.admin.TaskCreateRequest\032\".flyt" + + "eidl.admin.TaskCreateResponse\"9\202\323\344\223\0023\"\r/" + + "api/v1/tasks:\001*Z\037\"\032/api/v1/tasks/org/{id" + + ".org}:\001*\022\330\001\n\007GetTask\022 .flyteidl.admin.Ob" + + "jectGetRequest\032\024.flyteidl.admin.Task\"\224\001\202" + + "\323\344\223\002\215\001\022=/api/v1/tasks/{id.project}/{id.d" + + "omain}/{id.name}/{id.version}ZL\022J/api/v1" + + "/tasks/org/{id.org}/{id.project}/{id.dom" + + "ain}/{id.name}/{id.version}\022\305\001\n\013ListTask" + + "Ids\0220.flyteidl.admin.NamedEntityIdentifi" + + "erListRequest\032).flyteidl.admin.NamedEnti" + + "tyIdentifierList\"Y\202\323\344\223\002S\022#/api/v1/task_i" + + "ds/{project}/{domain}Z,\022*/api/v1/tasks/o" + + "rg/{org}/{project}/{domain}\022\250\002\n\tListTask" + + "s\022#.flyteidl.admin.ResourceListRequest\032\030" + + ".flyteidl.admin.TaskList\"\333\001\202\323\344\223\002\324\001\0220/api" + + "/v1/tasks/{id.project}/{id.domain}/{id.n" + + "ame}Z?\022=/api/v1/tasks/org/{id.org}/{id.p" + + "roject}/{id.domain}/{id.name}Z(\022&/api/v1" + + "/tasks/{id.project}/{id.domain}Z5\0223/api/" + + "v1/tasks/org/{id.org}/{id.project}/{id.d" + + "omain}\022\242\001\n\016CreateWorkflow\022%.flyteidl.adm" + + "in.WorkflowCreateRequest\032&.flyteidl.admi" + + "n.WorkflowCreateResponse\"A\202\323\344\223\002;\"\021/api/v" + + "1/workflows:\001*Z#\"\036/api/v1/workflows/org/" + + "{id.org}:\001*\022\350\001\n\013GetWorkflow\022 .flyteidl.a" + + "dmin.ObjectGetRequest\032\030.flyteidl.admin.W" + + "orkflow\"\234\001\202\323\344\223\002\225\001\022A/api/v1/workflows/{id" + + ".project}/{id.domain}/{id.name}/{id.vers" + + "ion}ZP\022N/api/v1/workflows/org/{id.org}/{" + "id.project}/{id.domain}/{id.name}/{id.ve" + - "rsion}ZS\022Q/api/v1/launch_plans/org/{id.o" + - "rg}/{id.project}/{id.domain}/{id.name}/{" + - "id.version}\022\363\001\n\023GetActiveLaunchPlan\022\'.fl" + - "yteidl.admin.ActiveLaunchPlanRequest\032\032.f" + - "lyteidl.admin.LaunchPlan\"\226\001\202\323\344\223\002\217\001\022>/api" + - "/v1/active_launch_plans/{id.project}/{id" + - ".domain}/{id.name}ZM\022K/api/v1/active_lau" + - "nch_plans/org/{id.org}/{id.project}/{id." + - "domain}/{id.name}\022\234\001\n\025ListActiveLaunchPl" + - "ans\022+.flyteidl.admin.ActiveLaunchPlanLis" + - "tRequest\032\036.flyteidl.admin.LaunchPlanList" + - "\"6\202\323\344\223\0020\022./api/v1/active_launch_plans/{p" + - "roject}/{domain}\022\334\001\n\021ListLaunchPlanIds\0220" + - ".flyteidl.admin.NamedEntityIdentifierLis" + - "tRequest\032).flyteidl.admin.NamedEntityIde" + - "ntifierList\"j\202\323\344\223\002d\022*/api/v1/launch_plan" + - "_ids/{project}/{domain}Z6\0224/api/v1/launc" + - "h_plan_ids/org/{org}/{project}/{domain}\022" + - "\320\002\n\017ListLaunchPlans\022#.flyteidl.admin.Res" + - "ourceListRequest\032\036.flyteidl.admin.Launch" + - "PlanList\"\367\001\202\323\344\223\002\360\001\0227/api/v1/launch_plans" + - "/{id.project}/{id.domain}/{id.name}ZF\022D/" + - "api/v1/launch_plans/org/{id.org}/{id.pro" + - "ject}/{id.domain}/{id.name}Z/\022-/api/v1/l" + - "aunch_plans/{id.project}/{id.domain}Z<\022:" + - "/api/v1/launch_plans/org/{id.org}/{id.pr" + - "oject}/{id.domain}\022\215\002\n\020UpdateLaunchPlan\022" + - "\'.flyteidl.admin.LaunchPlanUpdateRequest" + - "\032(.flyteidl.admin.LaunchPlanUpdateRespon" + - "se\"\245\001\202\323\344\223\002\236\001\032D/api/v1/launch_plans/{id.p" + - "roject}/{id.domain}/{id.name}/{id.versio" + - "n}:\001*ZS\032Q/api/v1/launch_plans/org/{id.or" + - "g}/{id.project}/{id.domain}/{id.name}/{i" + - "d.version}\022\201\001\n\017CreateExecution\022&.flyteid" + - "l.admin.ExecutionCreateRequest\032\'.flyteid" + - "l.admin.ExecutionCreateResponse\"\035\202\323\344\223\002\027\"" + - "\022/api/v1/executions:\001*\022\216\001\n\021RelaunchExecu" + - "tion\022(.flyteidl.admin.ExecutionRelaunchR" + - "equest\032\'.flyteidl.admin.ExecutionCreateR" + - "esponse\"&\202\323\344\223\002 \"\033/api/v1/executions/rela" + - "unch:\001*\022\213\001\n\020RecoverExecution\022\'.flyteidl." + - "admin.ExecutionRecoverRequest\032\'.flyteidl" + - ".admin.ExecutionCreateResponse\"%\202\323\344\223\002\037\"\032" + - "/api/v1/executions/recover:\001*\022\334\001\n\014GetExe" + - "cution\022+.flyteidl.admin.WorkflowExecutio" + - "nGetRequest\032\031.flyteidl.admin.Execution\"\203" + - "\001\202\323\344\223\002}\0225/api/v1/executions/{id.project}" + - "/{id.domain}/{id.name}ZD\022B/api/v1/execut" + - "ions/org/{id.org}/{id.project}/{id.domai" + - "n}/{id.name}\022\357\001\n\017UpdateExecution\022&.flyte" + - "idl.admin.ExecutionUpdateRequest\032\'.flyte" + - "idl.admin.ExecutionUpdateResponse\"\212\001\202\323\344\223" + - "\002\203\001\0325/api/v1/executions/{id.project}/{id" + - ".domain}/{id.name}:\001*ZG\032B/api/v1/executi" + - "ons/org/{id.org}/{id.project}/{id.domain" + - "}/{id.name}:\001*\022\206\002\n\020GetExecutionData\022/.fl" + - "yteidl.admin.WorkflowExecutionGetDataReq" + - "uest\0320.flyteidl.admin.WorkflowExecutionG" + - "etDataResponse\"\216\001\202\323\344\223\002\207\001\022:/api/v1/data/e" + - "xecutions/{id.project}/{id.domain}/{id.n" + - "ame}ZI\022G/api/v1/data/executions/org/{id." + - "org}/{id.project}/{id.domain}/{id.name}\022" + - "\305\001\n\016ListExecutions\022#.flyteidl.admin.Reso" + - "urceListRequest\032\035.flyteidl.admin.Executi" + - "onList\"o\202\323\344\223\002i\022+/api/v1/executions/{id.p" + - "roject}/{id.domain}Z:\0228/api/v1/execution" + - "s/org/{id.org}/{id.project}/{id.domain}\022" + - "\375\001\n\022TerminateExecution\022).flyteidl.admin." + - "ExecutionTerminateRequest\032*.flyteidl.adm" + - "in.ExecutionTerminateResponse\"\217\001\202\323\344\223\002\210\001*" + - "5/api/v1/executions/{id.project}/{id.dom" + - "ain}/{id.name}:\001*ZL*G/api/v1/data/execut" + - "ions/org/{id.org}/{id.project}/{id.domai" + - "n}/{id.name}:\001*\022\342\002\n\020GetNodeExecution\022\'.f" + - "lyteidl.admin.NodeExecutionGetRequest\032\035." + - "flyteidl.admin.NodeExecution\"\205\002\202\323\344\223\002\376\001\022n" + - "/api/v1/node_executions/{id.execution_id" + - ".project}/{id.execution_id.domain}/{id.e" + - "xecution_id.name}/{id.node_id}Z\213\001\022\210\001/api" + - "/v1/node_executions/org/{id.execution_id" + - ".org}/{id.execution_id.project}/{id.exec" + + "rsion}\022\321\001\n\017ListWorkflowIds\0220.flyteidl.ad" + + "min.NamedEntityIdentifierListRequest\032).f" + + "lyteidl.admin.NamedEntityIdentifierList\"" + + "a\202\323\344\223\002[\022\'/api/v1/workflow_ids/{project}/" + + "{domain}Z0\022./api/v1/workflows/org/{org}/" + + "{project}/{domain}\022\300\002\n\rListWorkflows\022#.f" + + "lyteidl.admin.ResourceListRequest\032\034.flyt" + + "eidl.admin.WorkflowList\"\353\001\202\323\344\223\002\344\001\0224/api/" + + "v1/workflows/{id.project}/{id.domain}/{i" + + "d.name}ZC\022A/api/v1/workflows/org/{id.org" + + "}/{id.project}/{id.domain}/{id.name}Z,\022*" + + "/api/v1/workflows/{id.project}/{id.domai" + + "n}Z9\0227/api/v1/workflows/org/{id.org}/{id" + + ".project}/{id.domain}\022\256\001\n\020CreateLaunchPl" + + "an\022\'.flyteidl.admin.LaunchPlanCreateRequ" + + "est\032(.flyteidl.admin.LaunchPlanCreateRes" + + "ponse\"G\202\323\344\223\002A\"\024/api/v1/launch_plans:\001*Z&" + + "\"!/api/v1/launch_plans/org/{id.org}:\001*\022\362" + + "\001\n\rGetLaunchPlan\022 .flyteidl.admin.Object" + + "GetRequest\032\032.flyteidl.admin.LaunchPlan\"\242" + + "\001\202\323\344\223\002\233\001\022D/api/v1/launch_plans/{id.proje" + + "ct}/{id.domain}/{id.name}/{id.version}ZS" + + "\022Q/api/v1/launch_plans/org/{id.org}/{id." + + "project}/{id.domain}/{id.name}/{id.versi" + + "on}\022\363\001\n\023GetActiveLaunchPlan\022\'.flyteidl.a" + + "dmin.ActiveLaunchPlanRequest\032\032.flyteidl." + + "admin.LaunchPlan\"\226\001\202\323\344\223\002\217\001\022>/api/v1/acti" + + "ve_launch_plans/{id.project}/{id.domain}" + + "/{id.name}ZM\022K/api/v1/active_launch_plan" + + "s/org/{id.org}/{id.project}/{id.domain}/" + + "{id.name}\022\330\001\n\025ListActiveLaunchPlans\022+.fl" + + "yteidl.admin.ActiveLaunchPlanListRequest" + + "\032\036.flyteidl.admin.LaunchPlanList\"r\202\323\344\223\002l" + + "\022./api/v1/active_launch_plans/{project}/" + + "{domain}Z:\0228/api/v1/active_launch_plans/" + + "org/{org}/{project}/{domain}\022\334\001\n\021ListLau" + + "nchPlanIds\0220.flyteidl.admin.NamedEntityI" + + "dentifierListRequest\032).flyteidl.admin.Na" + + "medEntityIdentifierList\"j\202\323\344\223\002d\022*/api/v1" + + "/launch_plan_ids/{project}/{domain}Z6\0224/" + + "api/v1/launch_plan_ids/org/{org}/{projec" + + "t}/{domain}\022\320\002\n\017ListLaunchPlans\022#.flytei" + + "dl.admin.ResourceListRequest\032\036.flyteidl." + + "admin.LaunchPlanList\"\367\001\202\323\344\223\002\360\001\0227/api/v1/" + + "launch_plans/{id.project}/{id.domain}/{i" + + "d.name}ZF\022D/api/v1/launch_plans/org/{id." + + "org}/{id.project}/{id.domain}/{id.name}Z" + + "/\022-/api/v1/launch_plans/{id.project}/{id" + + ".domain}Z<\022:/api/v1/launch_plans/org/{id" + + ".org}/{id.project}/{id.domain}\022\215\002\n\020Updat" + + "eLaunchPlan\022\'.flyteidl.admin.LaunchPlanU" + + "pdateRequest\032(.flyteidl.admin.LaunchPlan" + + "UpdateResponse\"\245\001\202\323\344\223\002\236\001\032D/api/v1/launch" + + "_plans/{id.project}/{id.domain}/{id.name" + + "}/{id.version}:\001*ZS\032Q/api/v1/launch_plan" + + "s/org/{id.org}/{id.project}/{id.domain}/" + + "{id.name}/{id.version}\022\244\001\n\017CreateExecuti" + + "on\022&.flyteidl.admin.ExecutionCreateReque" + + "st\032\'.flyteidl.admin.ExecutionCreateRespo" + + "nse\"@\202\323\344\223\002:\"\022/api/v1/executions:\001*Z!\032\034/a" + + "pi/v1/executions/org/{org}:\001*\022\275\001\n\021Relaun" + + "chExecution\022(.flyteidl.admin.ExecutionRe" + + "launchRequest\032\'.flyteidl.admin.Execution" + + "CreateResponse\"U\202\323\344\223\002O\"\033/api/v1/executio" + + "ns/relaunch:\001*Z-\"(/api/v1/executions/org" + + "/{id.org}/relaunch:\001*\022\271\001\n\020RecoverExecuti" + + "on\022\'.flyteidl.admin.ExecutionRecoverRequ" + + "est\032\'.flyteidl.admin.ExecutionCreateResp" + + "onse\"S\202\323\344\223\002M\"\032/api/v1/executions/recover" + + ":\001*Z,\"\'/api/v1/executions/org/{id.org}/r" + + "ecover:\001*\022\334\001\n\014GetExecution\022+.flyteidl.ad" + + "min.WorkflowExecutionGetRequest\032\031.flytei" + + "dl.admin.Execution\"\203\001\202\323\344\223\002}\0225/api/v1/exe" + + "cutions/{id.project}/{id.domain}/{id.nam" + + "e}ZD\022B/api/v1/executions/org/{id.org}/{i" + + "d.project}/{id.domain}/{id.name}\022\357\001\n\017Upd" + + "ateExecution\022&.flyteidl.admin.ExecutionU" + + "pdateRequest\032\'.flyteidl.admin.ExecutionU" + + "pdateResponse\"\212\001\202\323\344\223\002\203\001\0325/api/v1/executi" + + "ons/{id.project}/{id.domain}/{id.name}:\001" + + "*ZG\032B/api/v1/executions/org/{id.org}/{id" + + ".project}/{id.domain}/{id.name}:\001*\022\206\002\n\020G" + + "etExecutionData\022/.flyteidl.admin.Workflo" + + "wExecutionGetDataRequest\0320.flyteidl.admi" + + "n.WorkflowExecutionGetDataResponse\"\216\001\202\323\344" + + "\223\002\207\001\022:/api/v1/data/executions/{id.projec" + + "t}/{id.domain}/{id.name}ZI\022G/api/v1/data" + + "/executions/org/{id.org}/{id.project}/{i" + + "d.domain}/{id.name}\022\305\001\n\016ListExecutions\022#" + + ".flyteidl.admin.ResourceListRequest\032\035.fl" + + "yteidl.admin.ExecutionList\"o\202\323\344\223\002i\022+/api" + + "/v1/executions/{id.project}/{id.domain}Z" + + ":\0228/api/v1/executions/org/{id.org}/{id.p" + + "roject}/{id.domain}\022\370\001\n\022TerminateExecuti" + + "on\022).flyteidl.admin.ExecutionTerminateRe" + + "quest\032*.flyteidl.admin.ExecutionTerminat" + + "eResponse\"\212\001\202\323\344\223\002\203\001*5/api/v1/executions/" + + "{id.project}/{id.domain}/{id.name}:\001*ZG*" + + "B/api/v1/executions/org/{id.org}/{id.pro" + + "ject}/{id.domain}/{id.name}:\001*\022\342\002\n\020GetNo" + + "deExecution\022\'.flyteidl.admin.NodeExecuti" + + "onGetRequest\032\035.flyteidl.admin.NodeExecut" + + "ion\"\205\002\202\323\344\223\002\376\001\022n/api/v1/node_executions/{" + + "id.execution_id.project}/{id.execution_i" + + "d.domain}/{id.execution_id.name}/{id.nod" + + "e_id}Z\213\001\022\210\001/api/v1/node_executions/org/{" + + "id.execution_id.org}/{id.execution_id.pr" + + "oject}/{id.execution_id.domain}/{id.exec" + + "ution_id.name}/{id.node_id}\022\371\002\n\022ListNode" + + "Executions\022(.flyteidl.admin.NodeExecutio" + + "nListRequest\032!.flyteidl.admin.NodeExecut" + + "ionList\"\225\002\202\323\344\223\002\216\002\022s/api/v1/node_executio" + + "ns/{workflow_execution_id.project}/{work" + + "flow_execution_id.domain}/{workflow_exec" + + "ution_id.name}Z\226\001\022\223\001/api/v1/node_executi" + + "ons/org/{workflow_execution_id.org}/{wor" + + "kflow_execution_id.project}/{workflow_ex" + + "ecution_id.domain}/{workflow_execution_i" + + "d.name}\022\217\010\n\031ListNodeExecutionsForTask\022/." + + "flyteidl.admin.NodeExecutionForTaskListR" + + "equest\032!.flyteidl.admin.NodeExecutionLis" + + "t\"\235\007\202\323\344\223\002\226\007\022\251\003/api/v1/children/task_exec" + + "utions/{task_execution_id.node_execution" + + "_id.execution_id.project}/{task_executio" + + "n_id.node_execution_id.execution_id.doma" + + "in}/{task_execution_id.node_execution_id" + + ".execution_id.name}/{task_execution_id.n" + + "ode_execution_id.node_id}/{task_executio" + + "n_id.task_id.project}/{task_execution_id" + + ".task_id.domain}/{task_execution_id.task" + + "_id.name}/{task_execution_id.task_id.ver" + + "sion}/{task_execution_id.retry_attempt}Z" + + "\347\003\022\344\003/api/v1/children/task_executions/or" + + "g/{task_execution_id.node_execution_id.e" + + "xecution_id.org}/{task_execution_id.node" + + "_execution_id.execution_id.project}/{tas" + + "k_execution_id.node_execution_id.executi" + + "on_id.domain}/{task_execution_id.node_ex" + + "ecution_id.execution_id.name}/{task_exec" + + "ution_id.node_execution_id.node_id}/{tas" + + "k_execution_id.task_id.project}/{task_ex" + + "ecution_id.task_id.domain}/{task_executi" + + "on_id.task_id.name}/{task_execution_id.t" + + "ask_id.version}/{task_execution_id.retry" + + "_attempt}\022\203\003\n\024GetNodeExecutionData\022+.fly" + + "teidl.admin.NodeExecutionGetDataRequest\032" + + ",.flyteidl.admin.NodeExecutionGetDataRes" + + "ponse\"\217\002\202\323\344\223\002\210\002\022s/api/v1/data/node_execu" + + "tions/{id.execution_id.project}/{id.exec" + "ution_id.domain}/{id.execution_id.name}/" + - "{id.node_id}\022\371\002\n\022ListNodeExecutions\022(.fl" + - "yteidl.admin.NodeExecutionListRequest\032!." + - "flyteidl.admin.NodeExecutionList\"\225\002\202\323\344\223\002" + - "\216\002\022s/api/v1/node_executions/{workflow_ex" + - "ecution_id.project}/{workflow_execution_" + - "id.domain}/{workflow_execution_id.name}Z" + - "\226\001\022\223\001/api/v1/node_executions/org/{workfl" + - "ow_execution_id.org}/{workflow_execution" + - "_id.project}/{workflow_execution_id.doma" + - "in}/{workflow_execution_id.name}\022\217\010\n\031Lis" + - "tNodeExecutionsForTask\022/.flyteidl.admin." + - "NodeExecutionForTaskListRequest\032!.flytei" + - "dl.admin.NodeExecutionList\"\235\007\202\323\344\223\002\226\007\022\251\003/" + - "api/v1/children/task_executions/{task_ex" + - "ecution_id.node_execution_id.execution_i" + - "d.project}/{task_execution_id.node_execu" + - "tion_id.execution_id.domain}/{task_execu" + - "tion_id.node_execution_id.execution_id.n" + - "ame}/{task_execution_id.node_execution_i" + - "d.node_id}/{task_execution_id.task_id.pr" + - "oject}/{task_execution_id.task_id.domain" + - "}/{task_execution_id.task_id.name}/{task" + - "_execution_id.task_id.version}/{task_exe" + - "cution_id.retry_attempt}Z\347\003\022\344\003/api/v1/ch" + - "ildren/task_executions/org/{task_executi" + - "on_id.node_execution_id.execution_id.org" + - "}/{task_execution_id.node_execution_id.e" + - "xecution_id.project}/{task_execution_id." + - "node_execution_id.execution_id.domain}/{" + - "task_execution_id.node_execution_id.exec" + - "ution_id.name}/{task_execution_id.node_e" + - "xecution_id.node_id}/{task_execution_id." + - "task_id.project}/{task_execution_id.task" + - "_id.domain}/{task_execution_id.task_id.n" + - "ame}/{task_execution_id.task_id.version}" + - "/{task_execution_id.retry_attempt}\022\203\003\n\024G" + - "etNodeExecutionData\022+.flyteidl.admin.Nod" + - "eExecutionGetDataRequest\032,.flyteidl.admi" + - "n.NodeExecutionGetDataResponse\"\217\002\202\323\344\223\002\210\002" + - "\022s/api/v1/data/node_executions/{id.execu" + - "tion_id.project}/{id.execution_id.domain" + - "}/{id.execution_id.name}/{id.node_id}Z\220\001" + - "\022\215\001/api/v1/data/node_executions/org/{id." + - "execution_id.org}/{id.execution_id.proje" + - "ct}/{id.execution_id.domain}/{id.executi" + - "on_id.name}/{id.node_id}\022\177\n\017RegisterProj" + - "ect\022&.flyteidl.admin.ProjectRegisterRequ" + - "est\032\'.flyteidl.admin.ProjectRegisterResp" + - "onse\"\033\202\323\344\223\002\025\"\020/api/v1/projects:\001*\022\227\001\n\rUp" + - "dateProject\022\027.flyteidl.admin.Project\032%.f" + - "lyteidl.admin.ProjectUpdateResponse\"F\202\323\344" + - "\223\002@\032\025/api/v1/projects/{id}:\001*Z$\032\037/api/v1" + - "/projects/org/{org}/{id}:\001*\022f\n\014ListProje" + - "cts\022\".flyteidl.admin.ProjectListRequest\032" + - "\030.flyteidl.admin.Projects\"\030\202\323\344\223\002\022\022\020/api/" + - "v1/projects\022\231\001\n\023CreateWorkflowEvent\022-.fl" + - "yteidl.admin.WorkflowExecutionEventReque" + - "st\032..flyteidl.admin.WorkflowExecutionEve" + - "ntResponse\"#\202\323\344\223\002\035\"\030/api/v1/events/workf" + - "lows:\001*\022\211\001\n\017CreateNodeEvent\022).flyteidl.a" + - "dmin.NodeExecutionEventRequest\032*.flyteid" + - "l.admin.NodeExecutionEventResponse\"\037\202\323\344\223" + - "\002\031\"\024/api/v1/events/nodes:\001*\022\211\001\n\017CreateTa" + - "skEvent\022).flyteidl.admin.TaskExecutionEv" + - "entRequest\032*.flyteidl.admin.TaskExecutio" + - "nEventResponse\"\037\202\323\344\223\002\031\"\024/api/v1/events/t" + - "asks:\001*\022\313\005\n\020GetTaskExecution\022\'.flyteidl." + - "admin.TaskExecutionGetRequest\032\035.flyteidl" + - ".admin.TaskExecution\"\356\004\202\323\344\223\002\347\004\022\231\002/api/v1" + - "/task_executions/{id.node_execution_id.e" + - "xecution_id.project}/{id.node_execution_" + - "id.execution_id.domain}/{id.node_executi" + - "on_id.execution_id.name}/{id.node_execut" + - "ion_id.node_id}/{id.task_id.project}/{id" + - ".task_id.domain}/{id.task_id.name}/{id.t" + - "ask_id.version}/{id.retry_attempt}Z\310\002\022\305\002" + - "/api/v1/task_executions/org/{id.node_exe" + - "cution_id.execution_id.org}/{id.node_exe" + - "cution_id.execution_id.project}/{id.node" + - "_execution_id.execution_id.domain}/{id.n" + - "ode_execution_id.execution_id.name}/{id." + - "node_execution_id.node_id}/{id.task_id.p" + - "roject}/{id.task_id.domain}/{id.task_id." + - "name}/{id.task_id.version}/{id.retry_att" + - "empt}\022\361\003\n\022ListTaskExecutions\022(.flyteidl." + - "admin.TaskExecutionListRequest\032!.flyteid" + - "l.admin.TaskExecutionList\"\215\003\202\323\344\223\002\206\003\022\252\001/a" + - "pi/v1/task_executions/{node_execution_id" + - ".execution_id.project}/{node_execution_i" + - "d.execution_id.domain}/{node_execution_i" + - "d.execution_id.name}/{node_execution_id." + - "node_id}Z\326\001\022\323\001/api/v1/task_executions/or" + - "g/{node_execution_id.execution_id.org}/{" + + "{id.node_id}Z\220\001\022\215\001/api/v1/data/node_exec" + + "utions/org/{id.execution_id.org}/{id.exe" + + "cution_id.project}/{id.execution_id.doma" + + "in}/{id.execution_id.name}/{id.node_id}\022" + + "\250\001\n\017RegisterProject\022&.flyteidl.admin.Pro" + + "jectRegisterRequest\032\'.flyteidl.admin.Pro" + + "jectRegisterResponse\"D\202\323\344\223\002>\"\020/api/v1/pr" + + "ojects:\001*Z\'\"\"/api/v1/projects/org/{proje" + + "ct.org}:\001*\022\227\001\n\rUpdateProject\022\027.flyteidl." + + "admin.Project\032%.flyteidl.admin.ProjectUp" + + "dateResponse\"F\202\323\344\223\002@\032\025/api/v1/projects/{" + + "id}:\001*Z$\032\037/api/v1/projects/org/{org}/{id" + + "}:\001*\022\204\001\n\014ListProjects\022\".flyteidl.admin.P" + + "rojectListRequest\032\030.flyteidl.admin.Proje" + + "cts\"6\202\323\344\223\0020\022\020/api/v1/projectsZ\034\022\032/api/v1" + + "/projects/org/{org}\022\325\001\n\023CreateWorkflowEv" + + "ent\022-.flyteidl.admin.WorkflowExecutionEv" + + "entRequest\032..flyteidl.admin.WorkflowExec" + + "utionEventResponse\"_\202\323\344\223\002Y\"\030/api/v1/even" + + "ts/workflows:\001*Z:\"5/api/v1/events/org/{e" + + "vent.execution_id.org}/workflows:\001*\022\304\001\n\017" + + "CreateNodeEvent\022).flyteidl.admin.NodeExe" + + "cutionEventRequest\032*.flyteidl.admin.Node" + + "ExecutionEventResponse\"Z\202\323\344\223\002T\"\024/api/v1/" + + "events/nodes:\001*Z9\"4/api/v1/events/org/{e" + + "vent.id.execution_id.org}/nodes:\001*\022\332\001\n\017C" + + "reateTaskEvent\022).flyteidl.admin.TaskExec" + + "utionEventRequest\032*.flyteidl.admin.TaskE" + + "xecutionEventResponse\"p\202\323\344\223\002j\"\024/api/v1/e" + + "vents/tasks:\001*ZO\"J/api/v1/events/org/{ev" + + "ent.parent_node_execution_id.execution_i" + + "d.org}/tasks:\001*\022\313\005\n\020GetTaskExecution\022\'.f" + + "lyteidl.admin.TaskExecutionGetRequest\032\035." + + "flyteidl.admin.TaskExecution\"\356\004\202\323\344\223\002\347\004\022\231" + + "\002/api/v1/task_executions/{id.node_execut" + + "ion_id.execution_id.project}/{id.node_ex" + + "ecution_id.execution_id.domain}/{id.node" + + "_execution_id.execution_id.name}/{id.nod" + + "e_execution_id.node_id}/{id.task_id.proj" + + "ect}/{id.task_id.domain}/{id.task_id.nam" + + "e}/{id.task_id.version}/{id.retry_attemp" + + "t}Z\310\002\022\305\002/api/v1/task_executions/org/{id." + + "node_execution_id.execution_id.org}/{id." + "node_execution_id.execution_id.project}/" + - "{node_execution_id.execution_id.domain}/" + - "{node_execution_id.execution_id.name}/{n" + - "ode_execution_id.node_id}\022\354\005\n\024GetTaskExe" + - "cutionData\022+.flyteidl.admin.TaskExecutio" + - "nGetDataRequest\032,.flyteidl.admin.TaskExe" + - "cutionGetDataResponse\"\370\004\202\323\344\223\002\361\004\022\236\002/api/v" + - "1/data/task_executions/{id.node_executio" + - "n_id.execution_id.project}/{id.node_exec" + - "ution_id.execution_id.domain}/{id.node_e" + - "xecution_id.execution_id.name}/{id.node_" + - "execution_id.node_id}/{id.task_id.projec" + - "t}/{id.task_id.domain}/{id.task_id.name}" + - "/{id.task_id.version}/{id.retry_attempt}" + - "Z\315\002\022\312\002/api/v1/data/task_executions/org/{" + - "id.node_execution_id.execution_id.org}/{" + - "id.node_execution_id.execution_id.projec" + - "t}/{id.node_execution_id.execution_id.do" + - "main}/{id.node_execution_id.execution_id" + - ".name}/{id.node_execution_id.node_id}/{i" + - "d.task_id.project}/{id.task_id.domain}/{" + - "id.task_id.name}/{id.task_id.version}/{i" + - "d.retry_attempt}\022\313\002\n\035UpdateProjectDomain" + - "Attributes\0224.flyteidl.admin.ProjectDomai" + - "nAttributesUpdateRequest\0325.flyteidl.admi" + - "n.ProjectDomainAttributesUpdateResponse\"" + - "\274\001\202\323\344\223\002\265\001\032J/api/v1/project_domain_attrib" + - "utes/{attributes.project}/{attributes.do" + - "main}:\001*Zd\032_/api/v1/project_domain_attri" + - "butes/org/{attributes.org}/{attributes.p" + - "roject}/{attributes.domain}:\001*\022\203\002\n\032GetPr" + - "ojectDomainAttributes\0221.flyteidl.admin.P" + - "rojectDomainAttributesGetRequest\0322.flyte" + - "idl.admin.ProjectDomainAttributesGetResp" + - "onse\"~\202\323\344\223\002x\0224/api/v1/project_domain_att" + - "ributes/{project}/{domain}Z@\022>/api/v1/pr" + - "oject_domain_attributes/org/{org}/{proje" + - "ct}/{domain}\022\223\002\n\035DeleteProjectDomainAttr" + - "ibutes\0224.flyteidl.admin.ProjectDomainAtt" + - "ributesDeleteRequest\0325.flyteidl.admin.Pr" + - "ojectDomainAttributesDeleteResponse\"\204\001\202\323" + - "\344\223\002~*4/api/v1/project_domain_attributes/" + - "{project}/{domain}:\001*ZC*>/api/v1/project" + - "_domain_attributes/org/{org}/{project}/{" + - "domain}:\001*\022\212\002\n\027UpdateProjectAttributes\022." + - ".flyteidl.admin.ProjectAttributesUpdateR" + - "equest\032/.flyteidl.admin.ProjectAttribute" + - "sUpdateResponse\"\215\001\202\323\344\223\002\206\001\032//api/v1/proje" + - "ct_attributes/{attributes.project}:\001*ZP\032" + - "K/api/v1/project_domain_attributes/org/{" + - "attributes.org}/{attributes.project}:\001*\022" + - "\330\001\n\024GetProjectAttributes\022+.flyteidl.admi" + - "n.ProjectAttributesGetRequest\032,.flyteidl" + - ".admin.ProjectAttributesGetResponse\"e\202\323\344" + - "\223\002_\022$/api/v1/project_attributes/{project" + - "}Z7\0225/api/v1/project_domain_attributes/o" + - "rg/{org}/{project}\022\347\001\n\027DeleteProjectAttr" + + "{id.node_execution_id.execution_id.domai" + + "n}/{id.node_execution_id.execution_id.na" + + "me}/{id.node_execution_id.node_id}/{id.t" + + "ask_id.project}/{id.task_id.domain}/{id." + + "task_id.name}/{id.task_id.version}/{id.r" + + "etry_attempt}\022\361\003\n\022ListTaskExecutions\022(.f" + + "lyteidl.admin.TaskExecutionListRequest\032!" + + ".flyteidl.admin.TaskExecutionList\"\215\003\202\323\344\223" + + "\002\206\003\022\252\001/api/v1/task_executions/{node_exec" + + "ution_id.execution_id.project}/{node_exe" + + "cution_id.execution_id.domain}/{node_exe" + + "cution_id.execution_id.name}/{node_execu" + + "tion_id.node_id}Z\326\001\022\323\001/api/v1/task_execu" + + "tions/org/{node_execution_id.execution_i" + + "d.org}/{node_execution_id.execution_id.p" + + "roject}/{node_execution_id.execution_id." + + "domain}/{node_execution_id.execution_id." + + "name}/{node_execution_id.node_id}\022\354\005\n\024Ge" + + "tTaskExecutionData\022+.flyteidl.admin.Task" + + "ExecutionGetDataRequest\032,.flyteidl.admin" + + ".TaskExecutionGetDataResponse\"\370\004\202\323\344\223\002\361\004\022" + + "\236\002/api/v1/data/task_executions/{id.node_" + + "execution_id.execution_id.project}/{id.n" + + "ode_execution_id.execution_id.domain}/{i" + + "d.node_execution_id.execution_id.name}/{" + + "id.node_execution_id.node_id}/{id.task_i" + + "d.project}/{id.task_id.domain}/{id.task_" + + "id.name}/{id.task_id.version}/{id.retry_" + + "attempt}Z\315\002\022\312\002/api/v1/data/task_executio" + + "ns/org/{id.node_execution_id.execution_i" + + "d.org}/{id.node_execution_id.execution_i" + + "d.project}/{id.node_execution_id.executi" + + "on_id.domain}/{id.node_execution_id.exec" + + "ution_id.name}/{id.node_execution_id.nod" + + "e_id}/{id.task_id.project}/{id.task_id.d" + + "omain}/{id.task_id.name}/{id.task_id.ver" + + "sion}/{id.retry_attempt}\022\313\002\n\035UpdateProje" + + "ctDomainAttributes\0224.flyteidl.admin.Proj" + + "ectDomainAttributesUpdateRequest\0325.flyte" + + "idl.admin.ProjectDomainAttributesUpdateR" + + "esponse\"\274\001\202\323\344\223\002\265\001\032J/api/v1/project_domai" + + "n_attributes/{attributes.project}/{attri" + + "butes.domain}:\001*Zd\032_/api/v1/project_doma" + + "in_attributes/org/{attributes.org}/{attr" + + "ibutes.project}/{attributes.domain}:\001*\022\203" + + "\002\n\032GetProjectDomainAttributes\0221.flyteidl" + + ".admin.ProjectDomainAttributesGetRequest" + + "\0322.flyteidl.admin.ProjectDomainAttribute" + + "sGetResponse\"~\202\323\344\223\002x\0224/api/v1/project_do" + + "main_attributes/{project}/{domain}Z@\022>/a" + + "pi/v1/project_domain_attributes/org/{org" + + "}/{project}/{domain}\022\223\002\n\035DeleteProjectDo" + + "mainAttributes\0224.flyteidl.admin.ProjectD" + + "omainAttributesDeleteRequest\0325.flyteidl." + + "admin.ProjectDomainAttributesDeleteRespo" + + "nse\"\204\001\202\323\344\223\002~*4/api/v1/project_domain_att" + + "ributes/{project}/{domain}:\001*ZC*>/api/v1" + + "/project_domain_attributes/org/{org}/{pr" + + "oject}/{domain}:\001*\022\212\002\n\027UpdateProjectAttr" + "ibutes\022..flyteidl.admin.ProjectAttribute" + - "sDeleteRequest\032/.flyteidl.admin.ProjectA" + - "ttributesDeleteResponse\"k\202\323\344\223\002e*$/api/v1" + - "/project_attributes/{project}:\001*Z:*5/api" + - "/v1/project_domain_attributes/org/{org}/" + - "{project}:\001*\022\334\002\n\030UpdateWorkflowAttribute" + - "s\022/.flyteidl.admin.WorkflowAttributesUpd" + - "ateRequest\0320.flyteidl.admin.WorkflowAttr" + - "ibutesUpdateResponse\"\334\001\202\323\344\223\002\325\001\032Z/api/v1/" + - "workflow_attributes/{attributes.project}" + - "/{attributes.domain}/{attributes.workflo" + - "w}:\001*Zt\032o/api/v1/workflow_attributes/org" + - "/{attributes.org}/{attributes.project}/{" + - "attributes.domain}/{attributes.workflow}" + - ":\001*\022\200\002\n\025GetWorkflowAttributes\022,.flyteidl" + - ".admin.WorkflowAttributesGetRequest\032-.fl" + - "yteidl.admin.WorkflowAttributesGetRespon" + - "se\"\211\001\202\323\344\223\002\202\001\0229/api/v1/workflow_attribute" + - "s/{project}/{domain}/{workflow}ZE\022C/api/" + - "v1/workflow_attributes/org/{org}/{projec" + - "t}/{domain}/{workflow}\022\217\002\n\030DeleteWorkflo" + - "wAttributes\022/.flyteidl.admin.WorkflowAtt" + - "ributesDeleteRequest\0320.flyteidl.admin.Wo" + - "rkflowAttributesDeleteResponse\"\217\001\202\323\344\223\002\210\001" + - "*9/api/v1/workflow_attributes/{project}/" + - "{domain}/{workflow}:\001*ZH*C/api/v1/workfl" + - "ow_attributes/org/{org}/{project}/{domai" + - "n}/{workflow}:\001*\022\240\001\n\027ListMatchableAttrib" + - "utes\022..flyteidl.admin.ListMatchableAttri" + - "butesRequest\032/.flyteidl.admin.ListMatcha" + - "bleAttributesResponse\"$\202\323\344\223\002\036\022\034/api/v1/m" + - "atchable_attributes\022\350\001\n\021ListNamedEntitie" + - "s\022&.flyteidl.admin.NamedEntityListReques" + - "t\032\037.flyteidl.admin.NamedEntityList\"\211\001\202\323\344" + - "\223\002\202\001\0229/api/v1/named_entities/{resource_t" + - "ype}/{project}/{domain}ZE\022C/api/v1/named" + - "_entities/{resource_type}/org/{org}/{pro" + - "ject}/{domain}\022\203\002\n\016GetNamedEntity\022%.flyt" + - "eidl.admin.NamedEntityGetRequest\032\033.flyte" + - "idl.admin.NamedEntity\"\254\001\202\323\344\223\002\245\001\022I/api/v1" + - "/named_entities/{resource_type}/{id.proj" + - "ect}/{id.domain}/{id.name}ZX\022V/api/v1/na" + - "med_entities/{resource_type}/org/{id.org" + - "}/{id.project}/{id.domain}/{id.name}\022\235\002\n" + - "\021UpdateNamedEntity\022(.flyteidl.admin.Name" + - "dEntityUpdateRequest\032).flyteidl.admin.Na" + - "medEntityUpdateResponse\"\262\001\202\323\344\223\002\253\001\032I/api/" + - "v1/named_entities/{resource_type}/{id.pr" + - "oject}/{id.domain}/{id.name}:\001*Z[\032V/api/" + - "v1/named_entities/{resource_type}/org/{i" + - "d.org}/{id.project}/{id.domain}/{id.name" + - "}:\001*\022l\n\nGetVersion\022!.flyteidl.admin.GetV" + - "ersionRequest\032\".flyteidl.admin.GetVersio" + - "nResponse\"\027\202\323\344\223\002\021\022\017/api/v1/version\022\266\002\n\024G" + - "etDescriptionEntity\022 .flyteidl.admin.Obj" + - "ectGetRequest\032!.flyteidl.admin.Descripti" + - "onEntity\"\330\001\202\323\344\223\002\321\001\022_/api/v1/description_" + - "entities/{id.resource_type}/{id.project}" + - "/{id.domain}/{id.name}/{id.version}Zn\022l/" + - "api/v1/description_entities/org/{id.org}" + - "/{id.resource_type}/{id.project}/{id.dom" + - "ain}/{id.name}/{id.version}\022\310\003\n\027ListDesc" + - "riptionEntities\022,.flyteidl.admin.Descrip" + - "tionEntityListRequest\032%.flyteidl.admin.D" + - "escriptionEntityList\"\327\002\202\323\344\223\002\320\002\022O/api/v1/" + - "description_entities/{resource_type}/{id" + - ".project}/{id.domain}/{id.name}Z^\022\\/api/" + - "v1/description_entities/{resource_type}/" + - "org/{id.org}/{id.project}/{id.domain}/{i" + - "d.name}ZG\022E/api/v1/description_entities/" + - "{resource_type}/{id.project}/{id.domain}" + - "ZT\022R/api/v1/description_entities/{resour" + - "ce_type}/org/{id.org}/{id.project}/{id.d" + - "omain}\022\225\002\n\023GetExecutionMetrics\0222.flyteid" + - "l.admin.WorkflowExecutionGetMetricsReque" + - "st\0323.flyteidl.admin.WorkflowExecutionGet" + - "MetricsResponse\"\224\001\202\323\344\223\002\215\001\022=/api/v1/metri" + - "cs/executions/{id.project}/{id.domain}/{" + - "id.name}ZL\022J/api/v1/metrics/executions/o" + + "sUpdateRequest\032/.flyteidl.admin.ProjectA" + + "ttributesUpdateResponse\"\215\001\202\323\344\223\002\206\001\032//api/" + + "v1/project_attributes/{attributes.projec" + + "t}:\001*ZP\032K/api/v1/project_domain_attribut" + + "es/org/{attributes.org}/{attributes.proj" + + "ect}:\001*\022\330\001\n\024GetProjectAttributes\022+.flyte" + + "idl.admin.ProjectAttributesGetRequest\032,." + + "flyteidl.admin.ProjectAttributesGetRespo" + + "nse\"e\202\323\344\223\002_\022$/api/v1/project_attributes/" + + "{project}Z7\0225/api/v1/project_domain_attr" + + "ibutes/org/{org}/{project}\022\347\001\n\027DeletePro" + + "jectAttributes\022..flyteidl.admin.ProjectA" + + "ttributesDeleteRequest\032/.flyteidl.admin." + + "ProjectAttributesDeleteResponse\"k\202\323\344\223\002e*" + + "$/api/v1/project_attributes/{project}:\001*" + + "Z:*5/api/v1/project_domain_attributes/or" + + "g/{org}/{project}:\001*\022\334\002\n\030UpdateWorkflowA" + + "ttributes\022/.flyteidl.admin.WorkflowAttri" + + "butesUpdateRequest\0320.flyteidl.admin.Work" + + "flowAttributesUpdateResponse\"\334\001\202\323\344\223\002\325\001\032Z" + + "/api/v1/workflow_attributes/{attributes." + + "project}/{attributes.domain}/{attributes" + + ".workflow}:\001*Zt\032o/api/v1/workflow_attrib" + + "utes/org/{attributes.org}/{attributes.pr" + + "oject}/{attributes.domain}/{attributes.w" + + "orkflow}:\001*\022\200\002\n\025GetWorkflowAttributes\022,." + + "flyteidl.admin.WorkflowAttributesGetRequ" + + "est\032-.flyteidl.admin.WorkflowAttributesG" + + "etResponse\"\211\001\202\323\344\223\002\202\001\0229/api/v1/workflow_a" + + "ttributes/{project}/{domain}/{workflow}Z" + + "E\022C/api/v1/workflow_attributes/org/{org}" + + "/{project}/{domain}/{workflow}\022\217\002\n\030Delet" + + "eWorkflowAttributes\022/.flyteidl.admin.Wor" + + "kflowAttributesDeleteRequest\0320.flyteidl." + + "admin.WorkflowAttributesDeleteResponse\"\217" + + "\001\202\323\344\223\002\210\001*9/api/v1/workflow_attributes/{p" + + "roject}/{domain}/{workflow}:\001*ZH*C/api/v" + + "1/workflow_attributes/org/{org}/{project" + + "}/{domain}/{workflow}:\001*\022\312\001\n\027ListMatchab" + + "leAttributes\022..flyteidl.admin.ListMatcha" + + "bleAttributesRequest\032/.flyteidl.admin.Li" + + "stMatchableAttributesResponse\"N\202\323\344\223\002H\022\034/" + + "api/v1/matchable_attributesZ(\022&/api/v1/m" + + "atchable_attributes/org/{org}\022\350\001\n\021ListNa" + + "medEntities\022&.flyteidl.admin.NamedEntity" + + "ListRequest\032\037.flyteidl.admin.NamedEntity" + + "List\"\211\001\202\323\344\223\002\202\001\0229/api/v1/named_entities/{" + + "resource_type}/{project}/{domain}ZE\022C/ap" + + "i/v1/named_entities/{resource_type}/org/" + + "{org}/{project}/{domain}\022\203\002\n\016GetNamedEnt" + + "ity\022%.flyteidl.admin.NamedEntityGetReque" + + "st\032\033.flyteidl.admin.NamedEntity\"\254\001\202\323\344\223\002\245" + + "\001\022I/api/v1/named_entities/{resource_type" + + "}/{id.project}/{id.domain}/{id.name}ZX\022V" + + "/api/v1/named_entities/{resource_type}/o" + "rg/{id.org}/{id.project}/{id.domain}/{id" + - ".name}B?Z=github.com/flyteorg/flyte/flyt" + - "eidl/gen/pb-go/flyteidl/serviceb\006proto3" + ".name}\022\235\002\n\021UpdateNamedEntity\022(.flyteidl." + + "admin.NamedEntityUpdateRequest\032).flyteid" + + "l.admin.NamedEntityUpdateResponse\"\262\001\202\323\344\223" + + "\002\253\001\032I/api/v1/named_entities/{resource_ty" + + "pe}/{id.project}/{id.domain}/{id.name}:\001" + + "*Z[\032V/api/v1/named_entities/{resource_ty" + + "pe}/org/{id.org}/{id.project}/{id.domain" + + "}/{id.name}:\001*\022l\n\nGetVersion\022!.flyteidl." + + "admin.GetVersionRequest\032\".flyteidl.admin" + + ".GetVersionResponse\"\027\202\323\344\223\002\021\022\017/api/v1/ver" + + "sion\022\266\002\n\024GetDescriptionEntity\022 .flyteidl" + + ".admin.ObjectGetRequest\032!.flyteidl.admin" + + ".DescriptionEntity\"\330\001\202\323\344\223\002\321\001\022_/api/v1/de" + + "scription_entities/{id.resource_type}/{i" + + "d.project}/{id.domain}/{id.name}/{id.ver" + + "sion}Zn\022l/api/v1/description_entities/or" + + "g/{id.org}/{id.resource_type}/{id.projec" + + "t}/{id.domain}/{id.name}/{id.version}\022\310\003" + + "\n\027ListDescriptionEntities\022,.flyteidl.adm" + + "in.DescriptionEntityListRequest\032%.flytei" + + "dl.admin.DescriptionEntityList\"\327\002\202\323\344\223\002\320\002" + + "\022O/api/v1/description_entities/{resource" + + "_type}/{id.project}/{id.domain}/{id.name" + + "}Z^\022\\/api/v1/description_entities/{resou" + + "rce_type}/org/{id.org}/{id.project}/{id." + + "domain}/{id.name}ZG\022E/api/v1/description" + + "_entities/{resource_type}/{id.project}/{" + + "id.domain}ZT\022R/api/v1/description_entiti" + + "es/{resource_type}/org/{id.org}/{id.proj" + + "ect}/{id.domain}\022\225\002\n\023GetExecutionMetrics" + + "\0222.flyteidl.admin.WorkflowExecutionGetMe" + + "tricsRequest\0323.flyteidl.admin.WorkflowEx" + + "ecutionGetMetricsResponse\"\224\001\202\323\344\223\002\215\001\022=/ap" + + "i/v1/metrics/executions/{id.project}/{id" + + ".domain}/{id.name}ZL\022J/api/v1/metrics/ex" + + "ecutions/org/{id.org}/{id.project}/{id.d" + + "omain}/{id.name}B?Z=github.com/flyteorg/" + + "flyte/flyteidl/gen/pb-go/flyteidl/servic" + + "eb\006proto3" }; com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() { diff --git a/flyteidl/gen/pb-java/flyteidl/service/Signal.java b/flyteidl/gen/pb-java/flyteidl/service/Signal.java index bf83c2a8b0..46fcf38caa 100644 --- a/flyteidl/gen/pb-java/flyteidl/service/Signal.java +++ b/flyteidl/gen/pb-java/flyteidl/service/Signal.java @@ -25,19 +25,24 @@ public static void registerAllExtensions( java.lang.String[] descriptorData = { "\n\035flyteidl/service/signal.proto\022\020flyteid" + "l.service\032\034google/api/annotations.proto\032" + - "\033flyteidl/admin/signal.proto2\232\003\n\rSignalS" + + "\033flyteidl/admin/signal.proto2\336\004\n\rSignalS" + "ervice\022W\n\021GetOrCreateSignal\022(.flyteidl.a" + "dmin.SignalGetOrCreateRequest\032\026.flyteidl" + - ".admin.Signal\"\000\022\301\001\n\013ListSignals\022!.flytei" + + ".admin.Signal\"\000\022\324\002\n\013ListSignals\022!.flytei" + "dl.admin.SignalListRequest\032\032.flyteidl.ad" + - "min.SignalList\"s\202\323\344\223\002m\022k/api/v1/signals/" + - "{workflow_execution_id.project}/{workflo" + - "w_execution_id.domain}/{workflow_executi" + - "on_id.name}\022l\n\tSetSignal\022 .flyteidl.admi" + - "n.SignalSetRequest\032!.flyteidl.admin.Sign" + - "alSetResponse\"\032\202\323\344\223\002\024\"\017/api/v1/signals:\001" + - "*B?Z=github.com/flyteorg/flyte/flyteidl/" + - "gen/pb-go/flyteidl/serviceb\006proto3" + "min.SignalList\"\205\002\202\323\344\223\002\376\001\022k/api/v1/signal" + + "s/{workflow_execution_id.project}/{workf" + + "low_execution_id.domain}/{workflow_execu" + + "tion_id.name}Z\216\001\022\213\001/api/v1/signals/org/{" + + "workflow_execution_id.org}/{workflow_exe" + + "cution_id.project}/{workflow_execution_i" + + "d.domain}/{workflow_execution_id.name}\022\234" + + "\001\n\tSetSignal\022 .flyteidl.admin.SignalSetR" + + "equest\032!.flyteidl.admin.SignalSetRespons" + + "e\"J\202\323\344\223\002D\"\017/api/v1/signals:\001*Z.\")/api/v1" + + "/signals/org/{id.execution_id.org}:\001*B?Z" + + "=github.com/flyteorg/flyte/flyteidl/gen/" + + "pb-go/flyteidl/serviceb\006proto3" }; com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() { diff --git a/flyteidl/gen/pb-js/flyteidl.d.ts b/flyteidl/gen/pb-js/flyteidl.d.ts index c9e22a70ca..8d9f8ed346 100644 --- a/flyteidl/gen/pb-js/flyteidl.d.ts +++ b/flyteidl/gen/pb-js/flyteidl.d.ts @@ -15482,6 +15482,9 @@ export namespace flyteidl { /** ListMatchableAttributesRequest resourceType */ resourceType?: (flyteidl.admin.MatchableResource|null); + + /** ListMatchableAttributesRequest org */ + org?: (string|null); } /** Represents a ListMatchableAttributesRequest. */ @@ -15496,6 +15499,9 @@ export namespace flyteidl { /** ListMatchableAttributesRequest resourceType. */ public resourceType: flyteidl.admin.MatchableResource; + /** ListMatchableAttributesRequest org. */ + public org: string; + /** * Creates a new ListMatchableAttributesRequest instance using the specified properties. * @param [properties] Properties to set @@ -16731,6 +16737,9 @@ export namespace flyteidl { /** ProjectListRequest sortBy */ sortBy?: (flyteidl.admin.ISort|null); + + /** ProjectListRequest org */ + org?: (string|null); } /** Represents a ProjectListRequest. */ @@ -16754,6 +16763,9 @@ export namespace flyteidl { /** ProjectListRequest sortBy. */ public sortBy?: (flyteidl.admin.ISort|null); + /** ProjectListRequest org. */ + public org: string; + /** * Creates a new ProjectListRequest instance using the specified properties. * @param [properties] Properties to set diff --git a/flyteidl/gen/pb-js/flyteidl.js b/flyteidl/gen/pb-js/flyteidl.js index 971e6450a2..3de32e71c4 100644 --- a/flyteidl/gen/pb-js/flyteidl.js +++ b/flyteidl/gen/pb-js/flyteidl.js @@ -37423,6 +37423,7 @@ * @memberof flyteidl.admin * @interface IListMatchableAttributesRequest * @property {flyteidl.admin.MatchableResource|null} [resourceType] ListMatchableAttributesRequest resourceType + * @property {string|null} [org] ListMatchableAttributesRequest org */ /** @@ -37448,6 +37449,14 @@ */ ListMatchableAttributesRequest.prototype.resourceType = 0; + /** + * ListMatchableAttributesRequest org. + * @member {string} org + * @memberof flyteidl.admin.ListMatchableAttributesRequest + * @instance + */ + ListMatchableAttributesRequest.prototype.org = ""; + /** * Creates a new ListMatchableAttributesRequest instance using the specified properties. * @function create @@ -37474,6 +37483,8 @@ writer = $Writer.create(); if (message.resourceType != null && message.hasOwnProperty("resourceType")) writer.uint32(/* id 1, wireType 0 =*/8).int32(message.resourceType); + if (message.org != null && message.hasOwnProperty("org")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.org); return writer; }; @@ -37498,6 +37509,9 @@ case 1: message.resourceType = reader.int32(); break; + case 2: + message.org = reader.string(); + break; default: reader.skipType(tag & 7); break; @@ -37531,6 +37545,9 @@ case 7: break; } + if (message.org != null && message.hasOwnProperty("org")) + if (!$util.isString(message.org)) + return "org: string expected"; return null; }; @@ -40430,6 +40447,7 @@ * @property {string|null} [token] ProjectListRequest token * @property {string|null} [filters] ProjectListRequest filters * @property {flyteidl.admin.ISort|null} [sortBy] ProjectListRequest sortBy + * @property {string|null} [org] ProjectListRequest org */ /** @@ -40479,6 +40497,14 @@ */ ProjectListRequest.prototype.sortBy = null; + /** + * ProjectListRequest org. + * @member {string} org + * @memberof flyteidl.admin.ProjectListRequest + * @instance + */ + ProjectListRequest.prototype.org = ""; + /** * Creates a new ProjectListRequest instance using the specified properties. * @function create @@ -40511,6 +40537,8 @@ writer.uint32(/* id 3, wireType 2 =*/26).string(message.filters); if (message.sortBy != null && message.hasOwnProperty("sortBy")) $root.flyteidl.admin.Sort.encode(message.sortBy, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.org != null && message.hasOwnProperty("org")) + writer.uint32(/* id 5, wireType 2 =*/42).string(message.org); return writer; }; @@ -40544,6 +40572,9 @@ case 4: message.sortBy = $root.flyteidl.admin.Sort.decode(reader, reader.uint32()); break; + case 5: + message.org = reader.string(); + break; default: reader.skipType(tag & 7); break; @@ -40577,6 +40608,9 @@ if (error) return "sortBy." + error; } + if (message.org != null && message.hasOwnProperty("org")) + if (!$util.isString(message.org)) + return "org: string expected"; return null; }; diff --git a/flyteidl/gen/pb_python/flyteidl/admin/matchable_resource_pb2.py b/flyteidl/gen/pb_python/flyteidl/admin/matchable_resource_pb2.py index f95811b646..94748a4932 100644 --- a/flyteidl/gen/pb_python/flyteidl/admin/matchable_resource_pb2.py +++ b/flyteidl/gen/pb_python/flyteidl/admin/matchable_resource_pb2.py @@ -18,7 +18,7 @@ from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\'flyteidl/admin/matchable_resource.proto\x12\x0e\x66lyteidl.admin\x1a\x1b\x66lyteidl/admin/common.proto\x1a\'flyteidl/admin/cluster_assignment.proto\x1a\x1d\x66lyteidl/core/execution.proto\x1a\x1c\x66lyteidl/core/security.proto\x1a\x1egoogle/protobuf/wrappers.proto\"\x95\x01\n\x10TaskResourceSpec\x12\x10\n\x03\x63pu\x18\x01 \x01(\tR\x03\x63pu\x12\x10\n\x03gpu\x18\x02 \x01(\tR\x03gpu\x12\x16\n\x06memory\x18\x03 \x01(\tR\x06memory\x12\x18\n\x07storage\x18\x04 \x01(\tR\x07storage\x12+\n\x11\x65phemeral_storage\x18\x05 \x01(\tR\x10\x65phemeralStorage\"\x90\x01\n\x16TaskResourceAttributes\x12<\n\x08\x64\x65\x66\x61ults\x18\x01 \x01(\x0b\x32 .flyteidl.admin.TaskResourceSpecR\x08\x64\x65\x66\x61ults\x12\x38\n\x06limits\x18\x02 \x01(\x0b\x32 .flyteidl.admin.TaskResourceSpecR\x06limits\"\xb5\x01\n\x19\x43lusterResourceAttributes\x12Y\n\nattributes\x18\x01 \x03(\x0b\x32\x39.flyteidl.admin.ClusterResourceAttributes.AttributesEntryR\nattributes\x1a=\n\x0f\x41ttributesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\".\n\x18\x45xecutionQueueAttributes\x12\x12\n\x04tags\x18\x01 \x03(\tR\x04tags\"-\n\x15\x45xecutionClusterLabel\x12\x14\n\x05value\x18\x01 \x01(\tR\x05value\"\xec\x01\n\x0ePluginOverride\x12\x1b\n\ttask_type\x18\x01 \x01(\tR\x08taskType\x12\x1b\n\tplugin_id\x18\x02 \x03(\tR\x08pluginId\x12l\n\x17missing_plugin_behavior\x18\x04 \x01(\x0e\x32\x34.flyteidl.admin.PluginOverride.MissingPluginBehaviorR\x15missingPluginBehavior\"2\n\x15MissingPluginBehavior\x12\x08\n\x04\x46\x41IL\x10\x00\x12\x0f\n\x0bUSE_DEFAULT\x10\x01\"O\n\x0fPluginOverrides\x12<\n\toverrides\x18\x01 \x03(\x0b\x32\x1e.flyteidl.admin.PluginOverrideR\toverrides\"\xeb\x03\n\x17WorkflowExecutionConfig\x12\'\n\x0fmax_parallelism\x18\x01 \x01(\x05R\x0emaxParallelism\x12I\n\x10security_context\x18\x02 \x01(\x0b\x32\x1e.flyteidl.core.SecurityContextR\x0fsecurityContext\x12X\n\x16raw_output_data_config\x18\x03 \x01(\x0b\x32#.flyteidl.admin.RawOutputDataConfigR\x13rawOutputDataConfig\x12.\n\x06labels\x18\x04 \x01(\x0b\x32\x16.flyteidl.admin.LabelsR\x06labels\x12=\n\x0b\x61nnotations\x18\x05 \x01(\x0b\x32\x1b.flyteidl.admin.AnnotationsR\x0b\x61nnotations\x12@\n\rinterruptible\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.BoolValueR\rinterruptible\x12\'\n\x0foverwrite_cache\x18\x07 \x01(\x08R\x0eoverwriteCache\x12(\n\x04\x65nvs\x18\x08 \x01(\x0b\x32\x14.flyteidl.admin.EnvsR\x04\x65nvs\"\x94\x06\n\x12MatchingAttributes\x12\x62\n\x18task_resource_attributes\x18\x01 \x01(\x0b\x32&.flyteidl.admin.TaskResourceAttributesH\x00R\x16taskResourceAttributes\x12k\n\x1b\x63luster_resource_attributes\x18\x02 \x01(\x0b\x32).flyteidl.admin.ClusterResourceAttributesH\x00R\x19\x63lusterResourceAttributes\x12h\n\x1a\x65xecution_queue_attributes\x18\x03 \x01(\x0b\x32(.flyteidl.admin.ExecutionQueueAttributesH\x00R\x18\x65xecutionQueueAttributes\x12_\n\x17\x65xecution_cluster_label\x18\x04 \x01(\x0b\x32%.flyteidl.admin.ExecutionClusterLabelH\x00R\x15\x65xecutionClusterLabel\x12O\n\x12quality_of_service\x18\x05 \x01(\x0b\x32\x1f.flyteidl.core.QualityOfServiceH\x00R\x10qualityOfService\x12L\n\x10plugin_overrides\x18\x06 \x01(\x0b\x32\x1f.flyteidl.admin.PluginOverridesH\x00R\x0fpluginOverrides\x12\x65\n\x19workflow_execution_config\x18\x07 \x01(\x0b\x32\'.flyteidl.admin.WorkflowExecutionConfigH\x00R\x17workflowExecutionConfig\x12R\n\x12\x63luster_assignment\x18\x08 \x01(\x0b\x32!.flyteidl.admin.ClusterAssignmentH\x00R\x11\x63lusterAssignmentB\x08\n\x06target\"\xe7\x01\n MatchableAttributesConfiguration\x12\x42\n\nattributes\x18\x01 \x01(\x0b\x32\".flyteidl.admin.MatchingAttributesR\nattributes\x12\x16\n\x06\x64omain\x18\x02 \x01(\tR\x06\x64omain\x12\x18\n\x07project\x18\x03 \x01(\tR\x07project\x12\x1a\n\x08workflow\x18\x04 \x01(\tR\x08workflow\x12\x1f\n\x0blaunch_plan\x18\x05 \x01(\tR\nlaunchPlan\x12\x10\n\x03org\x18\x06 \x01(\tR\x03org\"h\n\x1eListMatchableAttributesRequest\x12\x46\n\rresource_type\x18\x01 \x01(\x0e\x32!.flyteidl.admin.MatchableResourceR\x0cresourceType\"{\n\x1fListMatchableAttributesResponse\x12X\n\x0e\x63onfigurations\x18\x01 \x03(\x0b\x32\x30.flyteidl.admin.MatchableAttributesConfigurationR\x0e\x63onfigurations*\xe0\x01\n\x11MatchableResource\x12\x11\n\rTASK_RESOURCE\x10\x00\x12\x14\n\x10\x43LUSTER_RESOURCE\x10\x01\x12\x13\n\x0f\x45XECUTION_QUEUE\x10\x02\x12\x1b\n\x17\x45XECUTION_CLUSTER_LABEL\x10\x03\x12$\n QUALITY_OF_SERVICE_SPECIFICATION\x10\x04\x12\x13\n\x0fPLUGIN_OVERRIDE\x10\x05\x12\x1d\n\x19WORKFLOW_EXECUTION_CONFIG\x10\x06\x12\x16\n\x12\x43LUSTER_ASSIGNMENT\x10\x07\x42\xc2\x01\n\x12\x63om.flyteidl.adminB\x16MatchableResourceProtoP\x01Z;github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/admin\xa2\x02\x03\x46\x41X\xaa\x02\x0e\x46lyteidl.Admin\xca\x02\x0e\x46lyteidl\\Admin\xe2\x02\x1a\x46lyteidl\\Admin\\GPBMetadata\xea\x02\x0f\x46lyteidl::Adminb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\'flyteidl/admin/matchable_resource.proto\x12\x0e\x66lyteidl.admin\x1a\x1b\x66lyteidl/admin/common.proto\x1a\'flyteidl/admin/cluster_assignment.proto\x1a\x1d\x66lyteidl/core/execution.proto\x1a\x1c\x66lyteidl/core/security.proto\x1a\x1egoogle/protobuf/wrappers.proto\"\x95\x01\n\x10TaskResourceSpec\x12\x10\n\x03\x63pu\x18\x01 \x01(\tR\x03\x63pu\x12\x10\n\x03gpu\x18\x02 \x01(\tR\x03gpu\x12\x16\n\x06memory\x18\x03 \x01(\tR\x06memory\x12\x18\n\x07storage\x18\x04 \x01(\tR\x07storage\x12+\n\x11\x65phemeral_storage\x18\x05 \x01(\tR\x10\x65phemeralStorage\"\x90\x01\n\x16TaskResourceAttributes\x12<\n\x08\x64\x65\x66\x61ults\x18\x01 \x01(\x0b\x32 .flyteidl.admin.TaskResourceSpecR\x08\x64\x65\x66\x61ults\x12\x38\n\x06limits\x18\x02 \x01(\x0b\x32 .flyteidl.admin.TaskResourceSpecR\x06limits\"\xb5\x01\n\x19\x43lusterResourceAttributes\x12Y\n\nattributes\x18\x01 \x03(\x0b\x32\x39.flyteidl.admin.ClusterResourceAttributes.AttributesEntryR\nattributes\x1a=\n\x0f\x41ttributesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\".\n\x18\x45xecutionQueueAttributes\x12\x12\n\x04tags\x18\x01 \x03(\tR\x04tags\"-\n\x15\x45xecutionClusterLabel\x12\x14\n\x05value\x18\x01 \x01(\tR\x05value\"\xec\x01\n\x0ePluginOverride\x12\x1b\n\ttask_type\x18\x01 \x01(\tR\x08taskType\x12\x1b\n\tplugin_id\x18\x02 \x03(\tR\x08pluginId\x12l\n\x17missing_plugin_behavior\x18\x04 \x01(\x0e\x32\x34.flyteidl.admin.PluginOverride.MissingPluginBehaviorR\x15missingPluginBehavior\"2\n\x15MissingPluginBehavior\x12\x08\n\x04\x46\x41IL\x10\x00\x12\x0f\n\x0bUSE_DEFAULT\x10\x01\"O\n\x0fPluginOverrides\x12<\n\toverrides\x18\x01 \x03(\x0b\x32\x1e.flyteidl.admin.PluginOverrideR\toverrides\"\xeb\x03\n\x17WorkflowExecutionConfig\x12\'\n\x0fmax_parallelism\x18\x01 \x01(\x05R\x0emaxParallelism\x12I\n\x10security_context\x18\x02 \x01(\x0b\x32\x1e.flyteidl.core.SecurityContextR\x0fsecurityContext\x12X\n\x16raw_output_data_config\x18\x03 \x01(\x0b\x32#.flyteidl.admin.RawOutputDataConfigR\x13rawOutputDataConfig\x12.\n\x06labels\x18\x04 \x01(\x0b\x32\x16.flyteidl.admin.LabelsR\x06labels\x12=\n\x0b\x61nnotations\x18\x05 \x01(\x0b\x32\x1b.flyteidl.admin.AnnotationsR\x0b\x61nnotations\x12@\n\rinterruptible\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.BoolValueR\rinterruptible\x12\'\n\x0foverwrite_cache\x18\x07 \x01(\x08R\x0eoverwriteCache\x12(\n\x04\x65nvs\x18\x08 \x01(\x0b\x32\x14.flyteidl.admin.EnvsR\x04\x65nvs\"\x94\x06\n\x12MatchingAttributes\x12\x62\n\x18task_resource_attributes\x18\x01 \x01(\x0b\x32&.flyteidl.admin.TaskResourceAttributesH\x00R\x16taskResourceAttributes\x12k\n\x1b\x63luster_resource_attributes\x18\x02 \x01(\x0b\x32).flyteidl.admin.ClusterResourceAttributesH\x00R\x19\x63lusterResourceAttributes\x12h\n\x1a\x65xecution_queue_attributes\x18\x03 \x01(\x0b\x32(.flyteidl.admin.ExecutionQueueAttributesH\x00R\x18\x65xecutionQueueAttributes\x12_\n\x17\x65xecution_cluster_label\x18\x04 \x01(\x0b\x32%.flyteidl.admin.ExecutionClusterLabelH\x00R\x15\x65xecutionClusterLabel\x12O\n\x12quality_of_service\x18\x05 \x01(\x0b\x32\x1f.flyteidl.core.QualityOfServiceH\x00R\x10qualityOfService\x12L\n\x10plugin_overrides\x18\x06 \x01(\x0b\x32\x1f.flyteidl.admin.PluginOverridesH\x00R\x0fpluginOverrides\x12\x65\n\x19workflow_execution_config\x18\x07 \x01(\x0b\x32\'.flyteidl.admin.WorkflowExecutionConfigH\x00R\x17workflowExecutionConfig\x12R\n\x12\x63luster_assignment\x18\x08 \x01(\x0b\x32!.flyteidl.admin.ClusterAssignmentH\x00R\x11\x63lusterAssignmentB\x08\n\x06target\"\xe7\x01\n MatchableAttributesConfiguration\x12\x42\n\nattributes\x18\x01 \x01(\x0b\x32\".flyteidl.admin.MatchingAttributesR\nattributes\x12\x16\n\x06\x64omain\x18\x02 \x01(\tR\x06\x64omain\x12\x18\n\x07project\x18\x03 \x01(\tR\x07project\x12\x1a\n\x08workflow\x18\x04 \x01(\tR\x08workflow\x12\x1f\n\x0blaunch_plan\x18\x05 \x01(\tR\nlaunchPlan\x12\x10\n\x03org\x18\x06 \x01(\tR\x03org\"z\n\x1eListMatchableAttributesRequest\x12\x46\n\rresource_type\x18\x01 \x01(\x0e\x32!.flyteidl.admin.MatchableResourceR\x0cresourceType\x12\x10\n\x03org\x18\x02 \x01(\tR\x03org\"{\n\x1fListMatchableAttributesResponse\x12X\n\x0e\x63onfigurations\x18\x01 \x03(\x0b\x32\x30.flyteidl.admin.MatchableAttributesConfigurationR\x0e\x63onfigurations*\xe0\x01\n\x11MatchableResource\x12\x11\n\rTASK_RESOURCE\x10\x00\x12\x14\n\x10\x43LUSTER_RESOURCE\x10\x01\x12\x13\n\x0f\x45XECUTION_QUEUE\x10\x02\x12\x1b\n\x17\x45XECUTION_CLUSTER_LABEL\x10\x03\x12$\n QUALITY_OF_SERVICE_SPECIFICATION\x10\x04\x12\x13\n\x0fPLUGIN_OVERRIDE\x10\x05\x12\x1d\n\x19WORKFLOW_EXECUTION_CONFIG\x10\x06\x12\x16\n\x12\x43LUSTER_ASSIGNMENT\x10\x07\x42\xc2\x01\n\x12\x63om.flyteidl.adminB\x16MatchableResourceProtoP\x01Z;github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/admin\xa2\x02\x03\x46\x41X\xaa\x02\x0e\x46lyteidl.Admin\xca\x02\x0e\x46lyteidl\\Admin\xe2\x02\x1a\x46lyteidl\\Admin\\GPBMetadata\xea\x02\x0f\x46lyteidl::Adminb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -29,8 +29,8 @@ DESCRIPTOR._serialized_options = b'\n\022com.flyteidl.adminB\026MatchableResourceProtoP\001Z;github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/admin\242\002\003FAX\252\002\016Flyteidl.Admin\312\002\016Flyteidl\\Admin\342\002\032Flyteidl\\Admin\\GPBMetadata\352\002\017Flyteidl::Admin' _CLUSTERRESOURCEATTRIBUTES_ATTRIBUTESENTRY._options = None _CLUSTERRESOURCEATTRIBUTES_ATTRIBUTESENTRY._serialized_options = b'8\001' - _globals['_MATCHABLERESOURCE']._serialized_start=2871 - _globals['_MATCHABLERESOURCE']._serialized_end=3095 + _globals['_MATCHABLERESOURCE']._serialized_start=2889 + _globals['_MATCHABLERESOURCE']._serialized_end=3113 _globals['_TASKRESOURCESPEC']._serialized_start=223 _globals['_TASKRESOURCESPEC']._serialized_end=372 _globals['_TASKRESOURCEATTRIBUTES']._serialized_start=375 @@ -56,7 +56,7 @@ _globals['_MATCHABLEATTRIBUTESCONFIGURATION']._serialized_start=2406 _globals['_MATCHABLEATTRIBUTESCONFIGURATION']._serialized_end=2637 _globals['_LISTMATCHABLEATTRIBUTESREQUEST']._serialized_start=2639 - _globals['_LISTMATCHABLEATTRIBUTESREQUEST']._serialized_end=2743 - _globals['_LISTMATCHABLEATTRIBUTESRESPONSE']._serialized_start=2745 - _globals['_LISTMATCHABLEATTRIBUTESRESPONSE']._serialized_end=2868 + _globals['_LISTMATCHABLEATTRIBUTESREQUEST']._serialized_end=2761 + _globals['_LISTMATCHABLEATTRIBUTESRESPONSE']._serialized_start=2763 + _globals['_LISTMATCHABLEATTRIBUTESRESPONSE']._serialized_end=2886 # @@protoc_insertion_point(module_scope) diff --git a/flyteidl/gen/pb_python/flyteidl/admin/matchable_resource_pb2.pyi b/flyteidl/gen/pb_python/flyteidl/admin/matchable_resource_pb2.pyi index f7707cf984..cc19f2d146 100644 --- a/flyteidl/gen/pb_python/flyteidl/admin/matchable_resource_pb2.pyi +++ b/flyteidl/gen/pb_python/flyteidl/admin/matchable_resource_pb2.pyi @@ -156,10 +156,12 @@ class MatchableAttributesConfiguration(_message.Message): def __init__(self, attributes: _Optional[_Union[MatchingAttributes, _Mapping]] = ..., domain: _Optional[str] = ..., project: _Optional[str] = ..., workflow: _Optional[str] = ..., launch_plan: _Optional[str] = ..., org: _Optional[str] = ...) -> None: ... class ListMatchableAttributesRequest(_message.Message): - __slots__ = ["resource_type"] + __slots__ = ["resource_type", "org"] RESOURCE_TYPE_FIELD_NUMBER: _ClassVar[int] + ORG_FIELD_NUMBER: _ClassVar[int] resource_type: MatchableResource - def __init__(self, resource_type: _Optional[_Union[MatchableResource, str]] = ...) -> None: ... + org: str + def __init__(self, resource_type: _Optional[_Union[MatchableResource, str]] = ..., org: _Optional[str] = ...) -> None: ... class ListMatchableAttributesResponse(_message.Message): __slots__ = ["configurations"] diff --git a/flyteidl/gen/pb_python/flyteidl/admin/project_pb2.py b/flyteidl/gen/pb_python/flyteidl/admin/project_pb2.py index ddebf730f2..d0b442e3a5 100644 --- a/flyteidl/gen/pb_python/flyteidl/admin/project_pb2.py +++ b/flyteidl/gen/pb_python/flyteidl/admin/project_pb2.py @@ -14,7 +14,7 @@ from flyteidl.admin import common_pb2 as flyteidl_dot_admin_dot_common__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1c\x66lyteidl/admin/project.proto\x12\x0e\x66lyteidl.admin\x1a\x1b\x66lyteidl/admin/common.proto\",\n\x06\x44omain\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\"\xbf\x02\n\x07Project\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12\x30\n\x07\x64omains\x18\x03 \x03(\x0b\x32\x16.flyteidl.admin.DomainR\x07\x64omains\x12 \n\x0b\x64\x65scription\x18\x04 \x01(\tR\x0b\x64\x65scription\x12.\n\x06labels\x18\x05 \x01(\x0b\x32\x16.flyteidl.admin.LabelsR\x06labels\x12:\n\x05state\x18\x06 \x01(\x0e\x32$.flyteidl.admin.Project.ProjectStateR\x05state\x12\x10\n\x03org\x18\x07 \x01(\tR\x03org\">\n\x0cProjectState\x12\n\n\x06\x41\x43TIVE\x10\x00\x12\x0c\n\x08\x41RCHIVED\x10\x01\x12\x14\n\x10SYSTEM_GENERATED\x10\x02\"U\n\x08Projects\x12\x33\n\x08projects\x18\x01 \x03(\x0b\x32\x17.flyteidl.admin.ProjectR\x08projects\x12\x14\n\x05token\x18\x02 \x01(\tR\x05token\"\x89\x01\n\x12ProjectListRequest\x12\x14\n\x05limit\x18\x01 \x01(\rR\x05limit\x12\x14\n\x05token\x18\x02 \x01(\tR\x05token\x12\x18\n\x07\x66ilters\x18\x03 \x01(\tR\x07\x66ilters\x12-\n\x07sort_by\x18\x04 \x01(\x0b\x32\x14.flyteidl.admin.SortR\x06sortBy\"K\n\x16ProjectRegisterRequest\x12\x31\n\x07project\x18\x01 \x01(\x0b\x32\x17.flyteidl.admin.ProjectR\x07project\"\x19\n\x17ProjectRegisterResponse\"\x17\n\x15ProjectUpdateResponseB\xb8\x01\n\x12\x63om.flyteidl.adminB\x0cProjectProtoP\x01Z;github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/admin\xa2\x02\x03\x46\x41X\xaa\x02\x0e\x46lyteidl.Admin\xca\x02\x0e\x46lyteidl\\Admin\xe2\x02\x1a\x46lyteidl\\Admin\\GPBMetadata\xea\x02\x0f\x46lyteidl::Adminb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1c\x66lyteidl/admin/project.proto\x12\x0e\x66lyteidl.admin\x1a\x1b\x66lyteidl/admin/common.proto\",\n\x06\x44omain\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\"\xbf\x02\n\x07Project\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12\x30\n\x07\x64omains\x18\x03 \x03(\x0b\x32\x16.flyteidl.admin.DomainR\x07\x64omains\x12 \n\x0b\x64\x65scription\x18\x04 \x01(\tR\x0b\x64\x65scription\x12.\n\x06labels\x18\x05 \x01(\x0b\x32\x16.flyteidl.admin.LabelsR\x06labels\x12:\n\x05state\x18\x06 \x01(\x0e\x32$.flyteidl.admin.Project.ProjectStateR\x05state\x12\x10\n\x03org\x18\x07 \x01(\tR\x03org\">\n\x0cProjectState\x12\n\n\x06\x41\x43TIVE\x10\x00\x12\x0c\n\x08\x41RCHIVED\x10\x01\x12\x14\n\x10SYSTEM_GENERATED\x10\x02\"U\n\x08Projects\x12\x33\n\x08projects\x18\x01 \x03(\x0b\x32\x17.flyteidl.admin.ProjectR\x08projects\x12\x14\n\x05token\x18\x02 \x01(\tR\x05token\"\x9b\x01\n\x12ProjectListRequest\x12\x14\n\x05limit\x18\x01 \x01(\rR\x05limit\x12\x14\n\x05token\x18\x02 \x01(\tR\x05token\x12\x18\n\x07\x66ilters\x18\x03 \x01(\tR\x07\x66ilters\x12-\n\x07sort_by\x18\x04 \x01(\x0b\x32\x14.flyteidl.admin.SortR\x06sortBy\x12\x10\n\x03org\x18\x05 \x01(\tR\x03org\"K\n\x16ProjectRegisterRequest\x12\x31\n\x07project\x18\x01 \x01(\x0b\x32\x17.flyteidl.admin.ProjectR\x07project\"\x19\n\x17ProjectRegisterResponse\"\x17\n\x15ProjectUpdateResponseB\xb8\x01\n\x12\x63om.flyteidl.adminB\x0cProjectProtoP\x01Z;github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/admin\xa2\x02\x03\x46\x41X\xaa\x02\x0e\x46lyteidl.Admin\xca\x02\x0e\x46lyteidl\\Admin\xe2\x02\x1a\x46lyteidl\\Admin\\GPBMetadata\xea\x02\x0f\x46lyteidl::Adminb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -32,11 +32,11 @@ _globals['_PROJECTS']._serialized_start=445 _globals['_PROJECTS']._serialized_end=530 _globals['_PROJECTLISTREQUEST']._serialized_start=533 - _globals['_PROJECTLISTREQUEST']._serialized_end=670 - _globals['_PROJECTREGISTERREQUEST']._serialized_start=672 - _globals['_PROJECTREGISTERREQUEST']._serialized_end=747 - _globals['_PROJECTREGISTERRESPONSE']._serialized_start=749 - _globals['_PROJECTREGISTERRESPONSE']._serialized_end=774 - _globals['_PROJECTUPDATERESPONSE']._serialized_start=776 - _globals['_PROJECTUPDATERESPONSE']._serialized_end=799 + _globals['_PROJECTLISTREQUEST']._serialized_end=688 + _globals['_PROJECTREGISTERREQUEST']._serialized_start=690 + _globals['_PROJECTREGISTERREQUEST']._serialized_end=765 + _globals['_PROJECTREGISTERRESPONSE']._serialized_start=767 + _globals['_PROJECTREGISTERRESPONSE']._serialized_end=792 + _globals['_PROJECTUPDATERESPONSE']._serialized_start=794 + _globals['_PROJECTUPDATERESPONSE']._serialized_end=817 # @@protoc_insertion_point(module_scope) diff --git a/flyteidl/gen/pb_python/flyteidl/admin/project_pb2.pyi b/flyteidl/gen/pb_python/flyteidl/admin/project_pb2.pyi index 5353d66e1b..1379fa3c0c 100644 --- a/flyteidl/gen/pb_python/flyteidl/admin/project_pb2.pyi +++ b/flyteidl/gen/pb_python/flyteidl/admin/project_pb2.pyi @@ -50,16 +50,18 @@ class Projects(_message.Message): def __init__(self, projects: _Optional[_Iterable[_Union[Project, _Mapping]]] = ..., token: _Optional[str] = ...) -> None: ... class ProjectListRequest(_message.Message): - __slots__ = ["limit", "token", "filters", "sort_by"] + __slots__ = ["limit", "token", "filters", "sort_by", "org"] LIMIT_FIELD_NUMBER: _ClassVar[int] TOKEN_FIELD_NUMBER: _ClassVar[int] FILTERS_FIELD_NUMBER: _ClassVar[int] SORT_BY_FIELD_NUMBER: _ClassVar[int] + ORG_FIELD_NUMBER: _ClassVar[int] limit: int token: str filters: str sort_by: _common_pb2.Sort - def __init__(self, limit: _Optional[int] = ..., token: _Optional[str] = ..., filters: _Optional[str] = ..., sort_by: _Optional[_Union[_common_pb2.Sort, _Mapping]] = ...) -> None: ... + org: str + def __init__(self, limit: _Optional[int] = ..., token: _Optional[str] = ..., filters: _Optional[str] = ..., sort_by: _Optional[_Union[_common_pb2.Sort, _Mapping]] = ..., org: _Optional[str] = ...) -> None: ... class ProjectRegisterRequest(_message.Message): __slots__ = ["project"] diff --git a/flyteidl/gen/pb_python/flyteidl/service/admin_pb2.py b/flyteidl/gen/pb_python/flyteidl/service/admin_pb2.py index 4ba67242fb..c7b34e85c6 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/admin_pb2.py +++ b/flyteidl/gen/pb_python/flyteidl/service/admin_pb2.py @@ -29,7 +29,7 @@ from flyteidl.admin import description_entity_pb2 as flyteidl_dot_admin_dot_description__entity__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1c\x66lyteidl/service/admin.proto\x12\x10\x66lyteidl.service\x1a\x1cgoogle/api/annotations.proto\x1a\x1c\x66lyteidl/admin/project.proto\x1a.flyteidl/admin/project_domain_attributes.proto\x1a\'flyteidl/admin/project_attributes.proto\x1a\x19\x66lyteidl/admin/task.proto\x1a\x1d\x66lyteidl/admin/workflow.proto\x1a(flyteidl/admin/workflow_attributes.proto\x1a flyteidl/admin/launch_plan.proto\x1a\x1a\x66lyteidl/admin/event.proto\x1a\x1e\x66lyteidl/admin/execution.proto\x1a\'flyteidl/admin/matchable_resource.proto\x1a#flyteidl/admin/node_execution.proto\x1a#flyteidl/admin/task_execution.proto\x1a\x1c\x66lyteidl/admin/version.proto\x1a\x1b\x66lyteidl/admin/common.proto\x1a\'flyteidl/admin/description_entity.proto2\xb5q\n\x0c\x41\x64minService\x12m\n\nCreateTask\x12!.flyteidl.admin.TaskCreateRequest\x1a\".flyteidl.admin.TaskCreateResponse\"\x18\x82\xd3\xe4\x93\x02\x12:\x01*\"\r/api/v1/tasks\x12\xd8\x01\n\x07GetTask\x12 .flyteidl.admin.ObjectGetRequest\x1a\x14.flyteidl.admin.Task\"\x94\x01\x82\xd3\xe4\x93\x02\x8d\x01ZL\x12J/api/v1/tasks/org/{id.org}/{id.project}/{id.domain}/{id.name}/{id.version}\x12=/api/v1/tasks/{id.project}/{id.domain}/{id.name}/{id.version}\x12\xc5\x01\n\x0bListTaskIds\x12\x30.flyteidl.admin.NamedEntityIdentifierListRequest\x1a).flyteidl.admin.NamedEntityIdentifierList\"Y\x82\xd3\xe4\x93\x02SZ,\x12*/api/v1/tasks/org/{org}/{project}/{domain}\x12#/api/v1/task_ids/{project}/{domain}\x12\xa8\x02\n\tListTasks\x12#.flyteidl.admin.ResourceListRequest\x1a\x18.flyteidl.admin.TaskList\"\xdb\x01\x82\xd3\xe4\x93\x02\xd4\x01Z?\x12=/api/v1/tasks/org/{id.org}/{id.project}/{id.domain}/{id.name}Z(\x12&/api/v1/tasks/{id.project}/{id.domain}Z5\x12\x33/api/v1/tasks/org/{id.org}/{id.project}/{id.domain}\x12\x30/api/v1/tasks/{id.project}/{id.domain}/{id.name}\x12}\n\x0e\x43reateWorkflow\x12%.flyteidl.admin.WorkflowCreateRequest\x1a&.flyteidl.admin.WorkflowCreateResponse\"\x1c\x82\xd3\xe4\x93\x02\x16:\x01*\"\x11/api/v1/workflows\x12\xe8\x01\n\x0bGetWorkflow\x12 .flyteidl.admin.ObjectGetRequest\x1a\x18.flyteidl.admin.Workflow\"\x9c\x01\x82\xd3\xe4\x93\x02\x95\x01ZP\x12N/api/v1/workflows/org/{id.org}/{id.project}/{id.domain}/{id.name}/{id.version}\x12\x41/api/v1/workflows/{id.project}/{id.domain}/{id.name}/{id.version}\x12\xd1\x01\n\x0fListWorkflowIds\x12\x30.flyteidl.admin.NamedEntityIdentifierListRequest\x1a).flyteidl.admin.NamedEntityIdentifierList\"a\x82\xd3\xe4\x93\x02[Z0\x12./api/v1/workflows/org/{org}/{project}/{domain}\x12\'/api/v1/workflow_ids/{project}/{domain}\x12\xc0\x02\n\rListWorkflows\x12#.flyteidl.admin.ResourceListRequest\x1a\x1c.flyteidl.admin.WorkflowList\"\xeb\x01\x82\xd3\xe4\x93\x02\xe4\x01ZC\x12\x41/api/v1/workflows/org/{id.org}/{id.project}/{id.domain}/{id.name}Z,\x12*/api/v1/workflows/{id.project}/{id.domain}Z9\x12\x37/api/v1/workflows/org/{id.org}/{id.project}/{id.domain}\x12\x34/api/v1/workflows/{id.project}/{id.domain}/{id.name}\x12\x86\x01\n\x10\x43reateLaunchPlan\x12\'.flyteidl.admin.LaunchPlanCreateRequest\x1a(.flyteidl.admin.LaunchPlanCreateResponse\"\x1f\x82\xd3\xe4\x93\x02\x19:\x01*\"\x14/api/v1/launch_plans\x12\xf2\x01\n\rGetLaunchPlan\x12 .flyteidl.admin.ObjectGetRequest\x1a\x1a.flyteidl.admin.LaunchPlan\"\xa2\x01\x82\xd3\xe4\x93\x02\x9b\x01ZS\x12Q/api/v1/launch_plans/org/{id.org}/{id.project}/{id.domain}/{id.name}/{id.version}\x12\x44/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version}\x12\xf3\x01\n\x13GetActiveLaunchPlan\x12\'.flyteidl.admin.ActiveLaunchPlanRequest\x1a\x1a.flyteidl.admin.LaunchPlan\"\x96\x01\x82\xd3\xe4\x93\x02\x8f\x01ZM\x12K/api/v1/active_launch_plans/org/{id.org}/{id.project}/{id.domain}/{id.name}\x12>/api/v1/active_launch_plans/{id.project}/{id.domain}/{id.name}\x12\x9c\x01\n\x15ListActiveLaunchPlans\x12+.flyteidl.admin.ActiveLaunchPlanListRequest\x1a\x1e.flyteidl.admin.LaunchPlanList\"6\x82\xd3\xe4\x93\x02\x30\x12./api/v1/active_launch_plans/{project}/{domain}\x12\xdc\x01\n\x11ListLaunchPlanIds\x12\x30.flyteidl.admin.NamedEntityIdentifierListRequest\x1a).flyteidl.admin.NamedEntityIdentifierList\"j\x82\xd3\xe4\x93\x02\x64Z6\x12\x34/api/v1/launch_plan_ids/org/{org}/{project}/{domain}\x12*/api/v1/launch_plan_ids/{project}/{domain}\x12\xd0\x02\n\x0fListLaunchPlans\x12#.flyteidl.admin.ResourceListRequest\x1a\x1e.flyteidl.admin.LaunchPlanList\"\xf7\x01\x82\xd3\xe4\x93\x02\xf0\x01ZF\x12\x44/api/v1/launch_plans/org/{id.org}/{id.project}/{id.domain}/{id.name}Z/\x12-/api/v1/launch_plans/{id.project}/{id.domain}Z<\x12:/api/v1/launch_plans/org/{id.org}/{id.project}/{id.domain}\x12\x37/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}\x12\x8d\x02\n\x10UpdateLaunchPlan\x12\'.flyteidl.admin.LaunchPlanUpdateRequest\x1a(.flyteidl.admin.LaunchPlanUpdateResponse\"\xa5\x01\x82\xd3\xe4\x93\x02\x9e\x01:\x01*ZS\x1aQ/api/v1/launch_plans/org/{id.org}/{id.project}/{id.domain}/{id.name}/{id.version}\x1a\x44/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version}\x12\x81\x01\n\x0f\x43reateExecution\x12&.flyteidl.admin.ExecutionCreateRequest\x1a\'.flyteidl.admin.ExecutionCreateResponse\"\x1d\x82\xd3\xe4\x93\x02\x17:\x01*\"\x12/api/v1/executions\x12\x8e\x01\n\x11RelaunchExecution\x12(.flyteidl.admin.ExecutionRelaunchRequest\x1a\'.flyteidl.admin.ExecutionCreateResponse\"&\x82\xd3\xe4\x93\x02 :\x01*\"\x1b/api/v1/executions/relaunch\x12\x8b\x01\n\x10RecoverExecution\x12\'.flyteidl.admin.ExecutionRecoverRequest\x1a\'.flyteidl.admin.ExecutionCreateResponse\"%\x82\xd3\xe4\x93\x02\x1f:\x01*\"\x1a/api/v1/executions/recover\x12\xdc\x01\n\x0cGetExecution\x12+.flyteidl.admin.WorkflowExecutionGetRequest\x1a\x19.flyteidl.admin.Execution\"\x83\x01\x82\xd3\xe4\x93\x02}ZD\x12\x42/api/v1/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}\x12\x35/api/v1/executions/{id.project}/{id.domain}/{id.name}\x12\xef\x01\n\x0fUpdateExecution\x12&.flyteidl.admin.ExecutionUpdateRequest\x1a\'.flyteidl.admin.ExecutionUpdateResponse\"\x8a\x01\x82\xd3\xe4\x93\x02\x83\x01:\x01*ZG:\x01*\x1a\x42/api/v1/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}\x1a\x35/api/v1/executions/{id.project}/{id.domain}/{id.name}\x12\x86\x02\n\x10GetExecutionData\x12/.flyteidl.admin.WorkflowExecutionGetDataRequest\x1a\x30.flyteidl.admin.WorkflowExecutionGetDataResponse\"\x8e\x01\x82\xd3\xe4\x93\x02\x87\x01ZI\x12G/api/v1/data/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}\x12:/api/v1/data/executions/{id.project}/{id.domain}/{id.name}\x12\xc5\x01\n\x0eListExecutions\x12#.flyteidl.admin.ResourceListRequest\x1a\x1d.flyteidl.admin.ExecutionList\"o\x82\xd3\xe4\x93\x02iZ:\x12\x38/api/v1/executions/org/{id.org}/{id.project}/{id.domain}\x12+/api/v1/executions/{id.project}/{id.domain}\x12\xfd\x01\n\x12TerminateExecution\x12).flyteidl.admin.ExecutionTerminateRequest\x1a*.flyteidl.admin.ExecutionTerminateResponse\"\x8f\x01\x82\xd3\xe4\x93\x02\x88\x01:\x01*ZL:\x01**G/api/v1/data/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}*5/api/v1/executions/{id.project}/{id.domain}/{id.name}\x12\xe2\x02\n\x10GetNodeExecution\x12\'.flyteidl.admin.NodeExecutionGetRequest\x1a\x1d.flyteidl.admin.NodeExecution\"\x85\x02\x82\xd3\xe4\x93\x02\xfe\x01Z\x8b\x01\x12\x88\x01/api/v1/node_executions/org/{id.execution_id.org}/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}\x12n/api/v1/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}\x12\xf9\x02\n\x12ListNodeExecutions\x12(.flyteidl.admin.NodeExecutionListRequest\x1a!.flyteidl.admin.NodeExecutionList\"\x95\x02\x82\xd3\xe4\x93\x02\x8e\x02Z\x96\x01\x12\x93\x01/api/v1/node_executions/org/{workflow_execution_id.org}/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name}\x12s/api/v1/node_executions/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name}\x12\x8f\x08\n\x19ListNodeExecutionsForTask\x12/.flyteidl.admin.NodeExecutionForTaskListRequest\x1a!.flyteidl.admin.NodeExecutionList\"\x9d\x07\x82\xd3\xe4\x93\x02\x96\x07Z\xe7\x03\x12\xe4\x03/api/v1/children/task_executions/org/{task_execution_id.node_execution_id.execution_id.org}/{task_execution_id.node_execution_id.execution_id.project}/{task_execution_id.node_execution_id.execution_id.domain}/{task_execution_id.node_execution_id.execution_id.name}/{task_execution_id.node_execution_id.node_id}/{task_execution_id.task_id.project}/{task_execution_id.task_id.domain}/{task_execution_id.task_id.name}/{task_execution_id.task_id.version}/{task_execution_id.retry_attempt}\x12\xa9\x03/api/v1/children/task_executions/{task_execution_id.node_execution_id.execution_id.project}/{task_execution_id.node_execution_id.execution_id.domain}/{task_execution_id.node_execution_id.execution_id.name}/{task_execution_id.node_execution_id.node_id}/{task_execution_id.task_id.project}/{task_execution_id.task_id.domain}/{task_execution_id.task_id.name}/{task_execution_id.task_id.version}/{task_execution_id.retry_attempt}\x12\x83\x03\n\x14GetNodeExecutionData\x12+.flyteidl.admin.NodeExecutionGetDataRequest\x1a,.flyteidl.admin.NodeExecutionGetDataResponse\"\x8f\x02\x82\xd3\xe4\x93\x02\x88\x02Z\x90\x01\x12\x8d\x01/api/v1/data/node_executions/org/{id.execution_id.org}/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}\x12s/api/v1/data/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}\x12\x7f\n\x0fRegisterProject\x12&.flyteidl.admin.ProjectRegisterRequest\x1a\'.flyteidl.admin.ProjectRegisterResponse\"\x1b\x82\xd3\xe4\x93\x02\x15:\x01*\"\x10/api/v1/projects\x12\x97\x01\n\rUpdateProject\x12\x17.flyteidl.admin.Project\x1a%.flyteidl.admin.ProjectUpdateResponse\"F\x82\xd3\xe4\x93\x02@:\x01*Z$:\x01*\x1a\x1f/api/v1/projects/org/{org}/{id}\x1a\x15/api/v1/projects/{id}\x12\x66\n\x0cListProjects\x12\".flyteidl.admin.ProjectListRequest\x1a\x18.flyteidl.admin.Projects\"\x18\x82\xd3\xe4\x93\x02\x12\x12\x10/api/v1/projects\x12\x99\x01\n\x13\x43reateWorkflowEvent\x12-.flyteidl.admin.WorkflowExecutionEventRequest\x1a..flyteidl.admin.WorkflowExecutionEventResponse\"#\x82\xd3\xe4\x93\x02\x1d:\x01*\"\x18/api/v1/events/workflows\x12\x89\x01\n\x0f\x43reateNodeEvent\x12).flyteidl.admin.NodeExecutionEventRequest\x1a*.flyteidl.admin.NodeExecutionEventResponse\"\x1f\x82\xd3\xe4\x93\x02\x19:\x01*\"\x14/api/v1/events/nodes\x12\x89\x01\n\x0f\x43reateTaskEvent\x12).flyteidl.admin.TaskExecutionEventRequest\x1a*.flyteidl.admin.TaskExecutionEventResponse\"\x1f\x82\xd3\xe4\x93\x02\x19:\x01*\"\x14/api/v1/events/tasks\x12\xcb\x05\n\x10GetTaskExecution\x12\'.flyteidl.admin.TaskExecutionGetRequest\x1a\x1d.flyteidl.admin.TaskExecution\"\xee\x04\x82\xd3\xe4\x93\x02\xe7\x04Z\xc8\x02\x12\xc5\x02/api/v1/task_executions/org/{id.node_execution_id.execution_id.org}/{id.node_execution_id.execution_id.project}/{id.node_execution_id.execution_id.domain}/{id.node_execution_id.execution_id.name}/{id.node_execution_id.node_id}/{id.task_id.project}/{id.task_id.domain}/{id.task_id.name}/{id.task_id.version}/{id.retry_attempt}\x12\x99\x02/api/v1/task_executions/{id.node_execution_id.execution_id.project}/{id.node_execution_id.execution_id.domain}/{id.node_execution_id.execution_id.name}/{id.node_execution_id.node_id}/{id.task_id.project}/{id.task_id.domain}/{id.task_id.name}/{id.task_id.version}/{id.retry_attempt}\x12\xf1\x03\n\x12ListTaskExecutions\x12(.flyteidl.admin.TaskExecutionListRequest\x1a!.flyteidl.admin.TaskExecutionList\"\x8d\x03\x82\xd3\xe4\x93\x02\x86\x03Z\xd6\x01\x12\xd3\x01/api/v1/task_executions/org/{node_execution_id.execution_id.org}/{node_execution_id.execution_id.project}/{node_execution_id.execution_id.domain}/{node_execution_id.execution_id.name}/{node_execution_id.node_id}\x12\xaa\x01/api/v1/task_executions/{node_execution_id.execution_id.project}/{node_execution_id.execution_id.domain}/{node_execution_id.execution_id.name}/{node_execution_id.node_id}\x12\xec\x05\n\x14GetTaskExecutionData\x12+.flyteidl.admin.TaskExecutionGetDataRequest\x1a,.flyteidl.admin.TaskExecutionGetDataResponse\"\xf8\x04\x82\xd3\xe4\x93\x02\xf1\x04Z\xcd\x02\x12\xca\x02/api/v1/data/task_executions/org/{id.node_execution_id.execution_id.org}/{id.node_execution_id.execution_id.project}/{id.node_execution_id.execution_id.domain}/{id.node_execution_id.execution_id.name}/{id.node_execution_id.node_id}/{id.task_id.project}/{id.task_id.domain}/{id.task_id.name}/{id.task_id.version}/{id.retry_attempt}\x12\x9e\x02/api/v1/data/task_executions/{id.node_execution_id.execution_id.project}/{id.node_execution_id.execution_id.domain}/{id.node_execution_id.execution_id.name}/{id.node_execution_id.node_id}/{id.task_id.project}/{id.task_id.domain}/{id.task_id.name}/{id.task_id.version}/{id.retry_attempt}\x12\xcb\x02\n\x1dUpdateProjectDomainAttributes\x12\x34.flyteidl.admin.ProjectDomainAttributesUpdateRequest\x1a\x35.flyteidl.admin.ProjectDomainAttributesUpdateResponse\"\xbc\x01\x82\xd3\xe4\x93\x02\xb5\x01:\x01*Zd:\x01*\x1a_/api/v1/project_domain_attributes/org/{attributes.org}/{attributes.project}/{attributes.domain}\x1aJ/api/v1/project_domain_attributes/{attributes.project}/{attributes.domain}\x12\x83\x02\n\x1aGetProjectDomainAttributes\x12\x31.flyteidl.admin.ProjectDomainAttributesGetRequest\x1a\x32.flyteidl.admin.ProjectDomainAttributesGetResponse\"~\x82\xd3\xe4\x93\x02xZ@\x12>/api/v1/project_domain_attributes/org/{org}/{project}/{domain}\x12\x34/api/v1/project_domain_attributes/{project}/{domain}\x12\x93\x02\n\x1d\x44\x65leteProjectDomainAttributes\x12\x34.flyteidl.admin.ProjectDomainAttributesDeleteRequest\x1a\x35.flyteidl.admin.ProjectDomainAttributesDeleteResponse\"\x84\x01\x82\xd3\xe4\x93\x02~:\x01*ZC:\x01**>/api/v1/project_domain_attributes/org/{org}/{project}/{domain}*4/api/v1/project_domain_attributes/{project}/{domain}\x12\x8a\x02\n\x17UpdateProjectAttributes\x12..flyteidl.admin.ProjectAttributesUpdateRequest\x1a/.flyteidl.admin.ProjectAttributesUpdateResponse\"\x8d\x01\x82\xd3\xe4\x93\x02\x86\x01:\x01*ZP:\x01*\x1aK/api/v1/project_domain_attributes/org/{attributes.org}/{attributes.project}\x1a//api/v1/project_attributes/{attributes.project}\x12\xd8\x01\n\x14GetProjectAttributes\x12+.flyteidl.admin.ProjectAttributesGetRequest\x1a,.flyteidl.admin.ProjectAttributesGetResponse\"e\x82\xd3\xe4\x93\x02_Z7\x12\x35/api/v1/project_domain_attributes/org/{org}/{project}\x12$/api/v1/project_attributes/{project}\x12\xe7\x01\n\x17\x44\x65leteProjectAttributes\x12..flyteidl.admin.ProjectAttributesDeleteRequest\x1a/.flyteidl.admin.ProjectAttributesDeleteResponse\"k\x82\xd3\xe4\x93\x02\x65:\x01*Z::\x01**5/api/v1/project_domain_attributes/org/{org}/{project}*$/api/v1/project_attributes/{project}\x12\xdc\x02\n\x18UpdateWorkflowAttributes\x12/.flyteidl.admin.WorkflowAttributesUpdateRequest\x1a\x30.flyteidl.admin.WorkflowAttributesUpdateResponse\"\xdc\x01\x82\xd3\xe4\x93\x02\xd5\x01:\x01*Zt:\x01*\x1ao/api/v1/workflow_attributes/org/{attributes.org}/{attributes.project}/{attributes.domain}/{attributes.workflow}\x1aZ/api/v1/workflow_attributes/{attributes.project}/{attributes.domain}/{attributes.workflow}\x12\x80\x02\n\x15GetWorkflowAttributes\x12,.flyteidl.admin.WorkflowAttributesGetRequest\x1a-.flyteidl.admin.WorkflowAttributesGetResponse\"\x89\x01\x82\xd3\xe4\x93\x02\x82\x01ZE\x12\x43/api/v1/workflow_attributes/org/{org}/{project}/{domain}/{workflow}\x12\x39/api/v1/workflow_attributes/{project}/{domain}/{workflow}\x12\x8f\x02\n\x18\x44\x65leteWorkflowAttributes\x12/.flyteidl.admin.WorkflowAttributesDeleteRequest\x1a\x30.flyteidl.admin.WorkflowAttributesDeleteResponse\"\x8f\x01\x82\xd3\xe4\x93\x02\x88\x01:\x01*ZH:\x01**C/api/v1/workflow_attributes/org/{org}/{project}/{domain}/{workflow}*9/api/v1/workflow_attributes/{project}/{domain}/{workflow}\x12\xa0\x01\n\x17ListMatchableAttributes\x12..flyteidl.admin.ListMatchableAttributesRequest\x1a/.flyteidl.admin.ListMatchableAttributesResponse\"$\x82\xd3\xe4\x93\x02\x1e\x12\x1c/api/v1/matchable_attributes\x12\xe8\x01\n\x11ListNamedEntities\x12&.flyteidl.admin.NamedEntityListRequest\x1a\x1f.flyteidl.admin.NamedEntityList\"\x89\x01\x82\xd3\xe4\x93\x02\x82\x01ZE\x12\x43/api/v1/named_entities/{resource_type}/org/{org}/{project}/{domain}\x12\x39/api/v1/named_entities/{resource_type}/{project}/{domain}\x12\x83\x02\n\x0eGetNamedEntity\x12%.flyteidl.admin.NamedEntityGetRequest\x1a\x1b.flyteidl.admin.NamedEntity\"\xac\x01\x82\xd3\xe4\x93\x02\xa5\x01ZX\x12V/api/v1/named_entities/{resource_type}/org/{id.org}/{id.project}/{id.domain}/{id.name}\x12I/api/v1/named_entities/{resource_type}/{id.project}/{id.domain}/{id.name}\x12\x9d\x02\n\x11UpdateNamedEntity\x12(.flyteidl.admin.NamedEntityUpdateRequest\x1a).flyteidl.admin.NamedEntityUpdateResponse\"\xb2\x01\x82\xd3\xe4\x93\x02\xab\x01:\x01*Z[:\x01*\x1aV/api/v1/named_entities/{resource_type}/org/{id.org}/{id.project}/{id.domain}/{id.name}\x1aI/api/v1/named_entities/{resource_type}/{id.project}/{id.domain}/{id.name}\x12l\n\nGetVersion\x12!.flyteidl.admin.GetVersionRequest\x1a\".flyteidl.admin.GetVersionResponse\"\x17\x82\xd3\xe4\x93\x02\x11\x12\x0f/api/v1/version\x12\xb6\x02\n\x14GetDescriptionEntity\x12 .flyteidl.admin.ObjectGetRequest\x1a!.flyteidl.admin.DescriptionEntity\"\xd8\x01\x82\xd3\xe4\x93\x02\xd1\x01Zn\x12l/api/v1/description_entities/org/{id.org}/{id.resource_type}/{id.project}/{id.domain}/{id.name}/{id.version}\x12_/api/v1/description_entities/{id.resource_type}/{id.project}/{id.domain}/{id.name}/{id.version}\x12\xc8\x03\n\x17ListDescriptionEntities\x12,.flyteidl.admin.DescriptionEntityListRequest\x1a%.flyteidl.admin.DescriptionEntityList\"\xd7\x02\x82\xd3\xe4\x93\x02\xd0\x02Z^\x12\\/api/v1/description_entities/{resource_type}/org/{id.org}/{id.project}/{id.domain}/{id.name}ZG\x12\x45/api/v1/description_entities/{resource_type}/{id.project}/{id.domain}ZT\x12R/api/v1/description_entities/{resource_type}/org/{id.org}/{id.project}/{id.domain}\x12O/api/v1/description_entities/{resource_type}/{id.project}/{id.domain}/{id.name}\x12\x95\x02\n\x13GetExecutionMetrics\x12\x32.flyteidl.admin.WorkflowExecutionGetMetricsRequest\x1a\x33.flyteidl.admin.WorkflowExecutionGetMetricsResponse\"\x94\x01\x82\xd3\xe4\x93\x02\x8d\x01ZL\x12J/api/v1/metrics/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}\x12=/api/v1/metrics/executions/{id.project}/{id.domain}/{id.name}B\xc2\x01\n\x14\x63om.flyteidl.serviceB\nAdminProtoP\x01Z=github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/service\xa2\x02\x03\x46SX\xaa\x02\x10\x46lyteidl.Service\xca\x02\x10\x46lyteidl\\Service\xe2\x02\x1c\x46lyteidl\\Service\\GPBMetadata\xea\x02\x11\x46lyteidl::Serviceb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1c\x66lyteidl/service/admin.proto\x12\x10\x66lyteidl.service\x1a\x1cgoogle/api/annotations.proto\x1a\x1c\x66lyteidl/admin/project.proto\x1a.flyteidl/admin/project_domain_attributes.proto\x1a\'flyteidl/admin/project_attributes.proto\x1a\x19\x66lyteidl/admin/task.proto\x1a\x1d\x66lyteidl/admin/workflow.proto\x1a(flyteidl/admin/workflow_attributes.proto\x1a flyteidl/admin/launch_plan.proto\x1a\x1a\x66lyteidl/admin/event.proto\x1a\x1e\x66lyteidl/admin/execution.proto\x1a\'flyteidl/admin/matchable_resource.proto\x1a#flyteidl/admin/node_execution.proto\x1a#flyteidl/admin/task_execution.proto\x1a\x1c\x66lyteidl/admin/version.proto\x1a\x1b\x66lyteidl/admin/common.proto\x1a\'flyteidl/admin/description_entity.proto2\x97v\n\x0c\x41\x64minService\x12\x8e\x01\n\nCreateTask\x12!.flyteidl.admin.TaskCreateRequest\x1a\".flyteidl.admin.TaskCreateResponse\"9\x82\xd3\xe4\x93\x02\x33:\x01*Z\x1f:\x01*\"\x1a/api/v1/tasks/org/{id.org}\"\r/api/v1/tasks\x12\xd8\x01\n\x07GetTask\x12 .flyteidl.admin.ObjectGetRequest\x1a\x14.flyteidl.admin.Task\"\x94\x01\x82\xd3\xe4\x93\x02\x8d\x01ZL\x12J/api/v1/tasks/org/{id.org}/{id.project}/{id.domain}/{id.name}/{id.version}\x12=/api/v1/tasks/{id.project}/{id.domain}/{id.name}/{id.version}\x12\xc5\x01\n\x0bListTaskIds\x12\x30.flyteidl.admin.NamedEntityIdentifierListRequest\x1a).flyteidl.admin.NamedEntityIdentifierList\"Y\x82\xd3\xe4\x93\x02SZ,\x12*/api/v1/tasks/org/{org}/{project}/{domain}\x12#/api/v1/task_ids/{project}/{domain}\x12\xa8\x02\n\tListTasks\x12#.flyteidl.admin.ResourceListRequest\x1a\x18.flyteidl.admin.TaskList\"\xdb\x01\x82\xd3\xe4\x93\x02\xd4\x01Z?\x12=/api/v1/tasks/org/{id.org}/{id.project}/{id.domain}/{id.name}Z(\x12&/api/v1/tasks/{id.project}/{id.domain}Z5\x12\x33/api/v1/tasks/org/{id.org}/{id.project}/{id.domain}\x12\x30/api/v1/tasks/{id.project}/{id.domain}/{id.name}\x12\xa2\x01\n\x0e\x43reateWorkflow\x12%.flyteidl.admin.WorkflowCreateRequest\x1a&.flyteidl.admin.WorkflowCreateResponse\"A\x82\xd3\xe4\x93\x02;:\x01*Z#:\x01*\"\x1e/api/v1/workflows/org/{id.org}\"\x11/api/v1/workflows\x12\xe8\x01\n\x0bGetWorkflow\x12 .flyteidl.admin.ObjectGetRequest\x1a\x18.flyteidl.admin.Workflow\"\x9c\x01\x82\xd3\xe4\x93\x02\x95\x01ZP\x12N/api/v1/workflows/org/{id.org}/{id.project}/{id.domain}/{id.name}/{id.version}\x12\x41/api/v1/workflows/{id.project}/{id.domain}/{id.name}/{id.version}\x12\xd1\x01\n\x0fListWorkflowIds\x12\x30.flyteidl.admin.NamedEntityIdentifierListRequest\x1a).flyteidl.admin.NamedEntityIdentifierList\"a\x82\xd3\xe4\x93\x02[Z0\x12./api/v1/workflows/org/{org}/{project}/{domain}\x12\'/api/v1/workflow_ids/{project}/{domain}\x12\xc0\x02\n\rListWorkflows\x12#.flyteidl.admin.ResourceListRequest\x1a\x1c.flyteidl.admin.WorkflowList\"\xeb\x01\x82\xd3\xe4\x93\x02\xe4\x01ZC\x12\x41/api/v1/workflows/org/{id.org}/{id.project}/{id.domain}/{id.name}Z,\x12*/api/v1/workflows/{id.project}/{id.domain}Z9\x12\x37/api/v1/workflows/org/{id.org}/{id.project}/{id.domain}\x12\x34/api/v1/workflows/{id.project}/{id.domain}/{id.name}\x12\xae\x01\n\x10\x43reateLaunchPlan\x12\'.flyteidl.admin.LaunchPlanCreateRequest\x1a(.flyteidl.admin.LaunchPlanCreateResponse\"G\x82\xd3\xe4\x93\x02\x41:\x01*Z&:\x01*\"!/api/v1/launch_plans/org/{id.org}\"\x14/api/v1/launch_plans\x12\xf2\x01\n\rGetLaunchPlan\x12 .flyteidl.admin.ObjectGetRequest\x1a\x1a.flyteidl.admin.LaunchPlan\"\xa2\x01\x82\xd3\xe4\x93\x02\x9b\x01ZS\x12Q/api/v1/launch_plans/org/{id.org}/{id.project}/{id.domain}/{id.name}/{id.version}\x12\x44/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version}\x12\xf3\x01\n\x13GetActiveLaunchPlan\x12\'.flyteidl.admin.ActiveLaunchPlanRequest\x1a\x1a.flyteidl.admin.LaunchPlan\"\x96\x01\x82\xd3\xe4\x93\x02\x8f\x01ZM\x12K/api/v1/active_launch_plans/org/{id.org}/{id.project}/{id.domain}/{id.name}\x12>/api/v1/active_launch_plans/{id.project}/{id.domain}/{id.name}\x12\xd8\x01\n\x15ListActiveLaunchPlans\x12+.flyteidl.admin.ActiveLaunchPlanListRequest\x1a\x1e.flyteidl.admin.LaunchPlanList\"r\x82\xd3\xe4\x93\x02lZ:\x12\x38/api/v1/active_launch_plans/org/{org}/{project}/{domain}\x12./api/v1/active_launch_plans/{project}/{domain}\x12\xdc\x01\n\x11ListLaunchPlanIds\x12\x30.flyteidl.admin.NamedEntityIdentifierListRequest\x1a).flyteidl.admin.NamedEntityIdentifierList\"j\x82\xd3\xe4\x93\x02\x64Z6\x12\x34/api/v1/launch_plan_ids/org/{org}/{project}/{domain}\x12*/api/v1/launch_plan_ids/{project}/{domain}\x12\xd0\x02\n\x0fListLaunchPlans\x12#.flyteidl.admin.ResourceListRequest\x1a\x1e.flyteidl.admin.LaunchPlanList\"\xf7\x01\x82\xd3\xe4\x93\x02\xf0\x01ZF\x12\x44/api/v1/launch_plans/org/{id.org}/{id.project}/{id.domain}/{id.name}Z/\x12-/api/v1/launch_plans/{id.project}/{id.domain}Z<\x12:/api/v1/launch_plans/org/{id.org}/{id.project}/{id.domain}\x12\x37/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}\x12\x8d\x02\n\x10UpdateLaunchPlan\x12\'.flyteidl.admin.LaunchPlanUpdateRequest\x1a(.flyteidl.admin.LaunchPlanUpdateResponse\"\xa5\x01\x82\xd3\xe4\x93\x02\x9e\x01:\x01*ZS\x1aQ/api/v1/launch_plans/org/{id.org}/{id.project}/{id.domain}/{id.name}/{id.version}\x1a\x44/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version}\x12\xa4\x01\n\x0f\x43reateExecution\x12&.flyteidl.admin.ExecutionCreateRequest\x1a\'.flyteidl.admin.ExecutionCreateResponse\"@\x82\xd3\xe4\x93\x02::\x01*Z!:\x01*\x1a\x1c/api/v1/executions/org/{org}\"\x12/api/v1/executions\x12\xbd\x01\n\x11RelaunchExecution\x12(.flyteidl.admin.ExecutionRelaunchRequest\x1a\'.flyteidl.admin.ExecutionCreateResponse\"U\x82\xd3\xe4\x93\x02O:\x01*Z-:\x01*\"(/api/v1/executions/org/{id.org}/relaunch\"\x1b/api/v1/executions/relaunch\x12\xb9\x01\n\x10RecoverExecution\x12\'.flyteidl.admin.ExecutionRecoverRequest\x1a\'.flyteidl.admin.ExecutionCreateResponse\"S\x82\xd3\xe4\x93\x02M:\x01*Z,:\x01*\"\'/api/v1/executions/org/{id.org}/recover\"\x1a/api/v1/executions/recover\x12\xdc\x01\n\x0cGetExecution\x12+.flyteidl.admin.WorkflowExecutionGetRequest\x1a\x19.flyteidl.admin.Execution\"\x83\x01\x82\xd3\xe4\x93\x02}ZD\x12\x42/api/v1/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}\x12\x35/api/v1/executions/{id.project}/{id.domain}/{id.name}\x12\xef\x01\n\x0fUpdateExecution\x12&.flyteidl.admin.ExecutionUpdateRequest\x1a\'.flyteidl.admin.ExecutionUpdateResponse\"\x8a\x01\x82\xd3\xe4\x93\x02\x83\x01:\x01*ZG:\x01*\x1a\x42/api/v1/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}\x1a\x35/api/v1/executions/{id.project}/{id.domain}/{id.name}\x12\x86\x02\n\x10GetExecutionData\x12/.flyteidl.admin.WorkflowExecutionGetDataRequest\x1a\x30.flyteidl.admin.WorkflowExecutionGetDataResponse\"\x8e\x01\x82\xd3\xe4\x93\x02\x87\x01ZI\x12G/api/v1/data/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}\x12:/api/v1/data/executions/{id.project}/{id.domain}/{id.name}\x12\xc5\x01\n\x0eListExecutions\x12#.flyteidl.admin.ResourceListRequest\x1a\x1d.flyteidl.admin.ExecutionList\"o\x82\xd3\xe4\x93\x02iZ:\x12\x38/api/v1/executions/org/{id.org}/{id.project}/{id.domain}\x12+/api/v1/executions/{id.project}/{id.domain}\x12\xf8\x01\n\x12TerminateExecution\x12).flyteidl.admin.ExecutionTerminateRequest\x1a*.flyteidl.admin.ExecutionTerminateResponse\"\x8a\x01\x82\xd3\xe4\x93\x02\x83\x01:\x01*ZG:\x01**B/api/v1/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}*5/api/v1/executions/{id.project}/{id.domain}/{id.name}\x12\xe2\x02\n\x10GetNodeExecution\x12\'.flyteidl.admin.NodeExecutionGetRequest\x1a\x1d.flyteidl.admin.NodeExecution\"\x85\x02\x82\xd3\xe4\x93\x02\xfe\x01Z\x8b\x01\x12\x88\x01/api/v1/node_executions/org/{id.execution_id.org}/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}\x12n/api/v1/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}\x12\xf9\x02\n\x12ListNodeExecutions\x12(.flyteidl.admin.NodeExecutionListRequest\x1a!.flyteidl.admin.NodeExecutionList\"\x95\x02\x82\xd3\xe4\x93\x02\x8e\x02Z\x96\x01\x12\x93\x01/api/v1/node_executions/org/{workflow_execution_id.org}/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name}\x12s/api/v1/node_executions/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name}\x12\x8f\x08\n\x19ListNodeExecutionsForTask\x12/.flyteidl.admin.NodeExecutionForTaskListRequest\x1a!.flyteidl.admin.NodeExecutionList\"\x9d\x07\x82\xd3\xe4\x93\x02\x96\x07Z\xe7\x03\x12\xe4\x03/api/v1/children/task_executions/org/{task_execution_id.node_execution_id.execution_id.org}/{task_execution_id.node_execution_id.execution_id.project}/{task_execution_id.node_execution_id.execution_id.domain}/{task_execution_id.node_execution_id.execution_id.name}/{task_execution_id.node_execution_id.node_id}/{task_execution_id.task_id.project}/{task_execution_id.task_id.domain}/{task_execution_id.task_id.name}/{task_execution_id.task_id.version}/{task_execution_id.retry_attempt}\x12\xa9\x03/api/v1/children/task_executions/{task_execution_id.node_execution_id.execution_id.project}/{task_execution_id.node_execution_id.execution_id.domain}/{task_execution_id.node_execution_id.execution_id.name}/{task_execution_id.node_execution_id.node_id}/{task_execution_id.task_id.project}/{task_execution_id.task_id.domain}/{task_execution_id.task_id.name}/{task_execution_id.task_id.version}/{task_execution_id.retry_attempt}\x12\x83\x03\n\x14GetNodeExecutionData\x12+.flyteidl.admin.NodeExecutionGetDataRequest\x1a,.flyteidl.admin.NodeExecutionGetDataResponse\"\x8f\x02\x82\xd3\xe4\x93\x02\x88\x02Z\x90\x01\x12\x8d\x01/api/v1/data/node_executions/org/{id.execution_id.org}/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}\x12s/api/v1/data/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}\x12\xa8\x01\n\x0fRegisterProject\x12&.flyteidl.admin.ProjectRegisterRequest\x1a\'.flyteidl.admin.ProjectRegisterResponse\"D\x82\xd3\xe4\x93\x02>:\x01*Z\':\x01*\"\"/api/v1/projects/org/{project.org}\"\x10/api/v1/projects\x12\x97\x01\n\rUpdateProject\x12\x17.flyteidl.admin.Project\x1a%.flyteidl.admin.ProjectUpdateResponse\"F\x82\xd3\xe4\x93\x02@:\x01*Z$:\x01*\x1a\x1f/api/v1/projects/org/{org}/{id}\x1a\x15/api/v1/projects/{id}\x12\x84\x01\n\x0cListProjects\x12\".flyteidl.admin.ProjectListRequest\x1a\x18.flyteidl.admin.Projects\"6\x82\xd3\xe4\x93\x02\x30Z\x1c\x12\x1a/api/v1/projects/org/{org}\x12\x10/api/v1/projects\x12\xd5\x01\n\x13\x43reateWorkflowEvent\x12-.flyteidl.admin.WorkflowExecutionEventRequest\x1a..flyteidl.admin.WorkflowExecutionEventResponse\"_\x82\xd3\xe4\x93\x02Y:\x01*Z::\x01*\"5/api/v1/events/org/{event.execution_id.org}/workflows\"\x18/api/v1/events/workflows\x12\xc4\x01\n\x0f\x43reateNodeEvent\x12).flyteidl.admin.NodeExecutionEventRequest\x1a*.flyteidl.admin.NodeExecutionEventResponse\"Z\x82\xd3\xe4\x93\x02T:\x01*Z9:\x01*\"4/api/v1/events/org/{event.id.execution_id.org}/nodes\"\x14/api/v1/events/nodes\x12\xda\x01\n\x0f\x43reateTaskEvent\x12).flyteidl.admin.TaskExecutionEventRequest\x1a*.flyteidl.admin.TaskExecutionEventResponse\"p\x82\xd3\xe4\x93\x02j:\x01*ZO:\x01*\"J/api/v1/events/org/{event.parent_node_execution_id.execution_id.org}/tasks\"\x14/api/v1/events/tasks\x12\xcb\x05\n\x10GetTaskExecution\x12\'.flyteidl.admin.TaskExecutionGetRequest\x1a\x1d.flyteidl.admin.TaskExecution\"\xee\x04\x82\xd3\xe4\x93\x02\xe7\x04Z\xc8\x02\x12\xc5\x02/api/v1/task_executions/org/{id.node_execution_id.execution_id.org}/{id.node_execution_id.execution_id.project}/{id.node_execution_id.execution_id.domain}/{id.node_execution_id.execution_id.name}/{id.node_execution_id.node_id}/{id.task_id.project}/{id.task_id.domain}/{id.task_id.name}/{id.task_id.version}/{id.retry_attempt}\x12\x99\x02/api/v1/task_executions/{id.node_execution_id.execution_id.project}/{id.node_execution_id.execution_id.domain}/{id.node_execution_id.execution_id.name}/{id.node_execution_id.node_id}/{id.task_id.project}/{id.task_id.domain}/{id.task_id.name}/{id.task_id.version}/{id.retry_attempt}\x12\xf1\x03\n\x12ListTaskExecutions\x12(.flyteidl.admin.TaskExecutionListRequest\x1a!.flyteidl.admin.TaskExecutionList\"\x8d\x03\x82\xd3\xe4\x93\x02\x86\x03Z\xd6\x01\x12\xd3\x01/api/v1/task_executions/org/{node_execution_id.execution_id.org}/{node_execution_id.execution_id.project}/{node_execution_id.execution_id.domain}/{node_execution_id.execution_id.name}/{node_execution_id.node_id}\x12\xaa\x01/api/v1/task_executions/{node_execution_id.execution_id.project}/{node_execution_id.execution_id.domain}/{node_execution_id.execution_id.name}/{node_execution_id.node_id}\x12\xec\x05\n\x14GetTaskExecutionData\x12+.flyteidl.admin.TaskExecutionGetDataRequest\x1a,.flyteidl.admin.TaskExecutionGetDataResponse\"\xf8\x04\x82\xd3\xe4\x93\x02\xf1\x04Z\xcd\x02\x12\xca\x02/api/v1/data/task_executions/org/{id.node_execution_id.execution_id.org}/{id.node_execution_id.execution_id.project}/{id.node_execution_id.execution_id.domain}/{id.node_execution_id.execution_id.name}/{id.node_execution_id.node_id}/{id.task_id.project}/{id.task_id.domain}/{id.task_id.name}/{id.task_id.version}/{id.retry_attempt}\x12\x9e\x02/api/v1/data/task_executions/{id.node_execution_id.execution_id.project}/{id.node_execution_id.execution_id.domain}/{id.node_execution_id.execution_id.name}/{id.node_execution_id.node_id}/{id.task_id.project}/{id.task_id.domain}/{id.task_id.name}/{id.task_id.version}/{id.retry_attempt}\x12\xcb\x02\n\x1dUpdateProjectDomainAttributes\x12\x34.flyteidl.admin.ProjectDomainAttributesUpdateRequest\x1a\x35.flyteidl.admin.ProjectDomainAttributesUpdateResponse\"\xbc\x01\x82\xd3\xe4\x93\x02\xb5\x01:\x01*Zd:\x01*\x1a_/api/v1/project_domain_attributes/org/{attributes.org}/{attributes.project}/{attributes.domain}\x1aJ/api/v1/project_domain_attributes/{attributes.project}/{attributes.domain}\x12\x83\x02\n\x1aGetProjectDomainAttributes\x12\x31.flyteidl.admin.ProjectDomainAttributesGetRequest\x1a\x32.flyteidl.admin.ProjectDomainAttributesGetResponse\"~\x82\xd3\xe4\x93\x02xZ@\x12>/api/v1/project_domain_attributes/org/{org}/{project}/{domain}\x12\x34/api/v1/project_domain_attributes/{project}/{domain}\x12\x93\x02\n\x1d\x44\x65leteProjectDomainAttributes\x12\x34.flyteidl.admin.ProjectDomainAttributesDeleteRequest\x1a\x35.flyteidl.admin.ProjectDomainAttributesDeleteResponse\"\x84\x01\x82\xd3\xe4\x93\x02~:\x01*ZC:\x01**>/api/v1/project_domain_attributes/org/{org}/{project}/{domain}*4/api/v1/project_domain_attributes/{project}/{domain}\x12\x8a\x02\n\x17UpdateProjectAttributes\x12..flyteidl.admin.ProjectAttributesUpdateRequest\x1a/.flyteidl.admin.ProjectAttributesUpdateResponse\"\x8d\x01\x82\xd3\xe4\x93\x02\x86\x01:\x01*ZP:\x01*\x1aK/api/v1/project_domain_attributes/org/{attributes.org}/{attributes.project}\x1a//api/v1/project_attributes/{attributes.project}\x12\xd8\x01\n\x14GetProjectAttributes\x12+.flyteidl.admin.ProjectAttributesGetRequest\x1a,.flyteidl.admin.ProjectAttributesGetResponse\"e\x82\xd3\xe4\x93\x02_Z7\x12\x35/api/v1/project_domain_attributes/org/{org}/{project}\x12$/api/v1/project_attributes/{project}\x12\xe7\x01\n\x17\x44\x65leteProjectAttributes\x12..flyteidl.admin.ProjectAttributesDeleteRequest\x1a/.flyteidl.admin.ProjectAttributesDeleteResponse\"k\x82\xd3\xe4\x93\x02\x65:\x01*Z::\x01**5/api/v1/project_domain_attributes/org/{org}/{project}*$/api/v1/project_attributes/{project}\x12\xdc\x02\n\x18UpdateWorkflowAttributes\x12/.flyteidl.admin.WorkflowAttributesUpdateRequest\x1a\x30.flyteidl.admin.WorkflowAttributesUpdateResponse\"\xdc\x01\x82\xd3\xe4\x93\x02\xd5\x01:\x01*Zt:\x01*\x1ao/api/v1/workflow_attributes/org/{attributes.org}/{attributes.project}/{attributes.domain}/{attributes.workflow}\x1aZ/api/v1/workflow_attributes/{attributes.project}/{attributes.domain}/{attributes.workflow}\x12\x80\x02\n\x15GetWorkflowAttributes\x12,.flyteidl.admin.WorkflowAttributesGetRequest\x1a-.flyteidl.admin.WorkflowAttributesGetResponse\"\x89\x01\x82\xd3\xe4\x93\x02\x82\x01ZE\x12\x43/api/v1/workflow_attributes/org/{org}/{project}/{domain}/{workflow}\x12\x39/api/v1/workflow_attributes/{project}/{domain}/{workflow}\x12\x8f\x02\n\x18\x44\x65leteWorkflowAttributes\x12/.flyteidl.admin.WorkflowAttributesDeleteRequest\x1a\x30.flyteidl.admin.WorkflowAttributesDeleteResponse\"\x8f\x01\x82\xd3\xe4\x93\x02\x88\x01:\x01*ZH:\x01**C/api/v1/workflow_attributes/org/{org}/{project}/{domain}/{workflow}*9/api/v1/workflow_attributes/{project}/{domain}/{workflow}\x12\xca\x01\n\x17ListMatchableAttributes\x12..flyteidl.admin.ListMatchableAttributesRequest\x1a/.flyteidl.admin.ListMatchableAttributesResponse\"N\x82\xd3\xe4\x93\x02HZ(\x12&/api/v1/matchable_attributes/org/{org}\x12\x1c/api/v1/matchable_attributes\x12\xe8\x01\n\x11ListNamedEntities\x12&.flyteidl.admin.NamedEntityListRequest\x1a\x1f.flyteidl.admin.NamedEntityList\"\x89\x01\x82\xd3\xe4\x93\x02\x82\x01ZE\x12\x43/api/v1/named_entities/{resource_type}/org/{org}/{project}/{domain}\x12\x39/api/v1/named_entities/{resource_type}/{project}/{domain}\x12\x83\x02\n\x0eGetNamedEntity\x12%.flyteidl.admin.NamedEntityGetRequest\x1a\x1b.flyteidl.admin.NamedEntity\"\xac\x01\x82\xd3\xe4\x93\x02\xa5\x01ZX\x12V/api/v1/named_entities/{resource_type}/org/{id.org}/{id.project}/{id.domain}/{id.name}\x12I/api/v1/named_entities/{resource_type}/{id.project}/{id.domain}/{id.name}\x12\x9d\x02\n\x11UpdateNamedEntity\x12(.flyteidl.admin.NamedEntityUpdateRequest\x1a).flyteidl.admin.NamedEntityUpdateResponse\"\xb2\x01\x82\xd3\xe4\x93\x02\xab\x01:\x01*Z[:\x01*\x1aV/api/v1/named_entities/{resource_type}/org/{id.org}/{id.project}/{id.domain}/{id.name}\x1aI/api/v1/named_entities/{resource_type}/{id.project}/{id.domain}/{id.name}\x12l\n\nGetVersion\x12!.flyteidl.admin.GetVersionRequest\x1a\".flyteidl.admin.GetVersionResponse\"\x17\x82\xd3\xe4\x93\x02\x11\x12\x0f/api/v1/version\x12\xb6\x02\n\x14GetDescriptionEntity\x12 .flyteidl.admin.ObjectGetRequest\x1a!.flyteidl.admin.DescriptionEntity\"\xd8\x01\x82\xd3\xe4\x93\x02\xd1\x01Zn\x12l/api/v1/description_entities/org/{id.org}/{id.resource_type}/{id.project}/{id.domain}/{id.name}/{id.version}\x12_/api/v1/description_entities/{id.resource_type}/{id.project}/{id.domain}/{id.name}/{id.version}\x12\xc8\x03\n\x17ListDescriptionEntities\x12,.flyteidl.admin.DescriptionEntityListRequest\x1a%.flyteidl.admin.DescriptionEntityList\"\xd7\x02\x82\xd3\xe4\x93\x02\xd0\x02Z^\x12\\/api/v1/description_entities/{resource_type}/org/{id.org}/{id.project}/{id.domain}/{id.name}ZG\x12\x45/api/v1/description_entities/{resource_type}/{id.project}/{id.domain}ZT\x12R/api/v1/description_entities/{resource_type}/org/{id.org}/{id.project}/{id.domain}\x12O/api/v1/description_entities/{resource_type}/{id.project}/{id.domain}/{id.name}\x12\x95\x02\n\x13GetExecutionMetrics\x12\x32.flyteidl.admin.WorkflowExecutionGetMetricsRequest\x1a\x33.flyteidl.admin.WorkflowExecutionGetMetricsResponse\"\x94\x01\x82\xd3\xe4\x93\x02\x8d\x01ZL\x12J/api/v1/metrics/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}\x12=/api/v1/metrics/executions/{id.project}/{id.domain}/{id.name}B\xc2\x01\n\x14\x63om.flyteidl.serviceB\nAdminProtoP\x01Z=github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/service\xa2\x02\x03\x46SX\xaa\x02\x10\x46lyteidl.Service\xca\x02\x10\x46lyteidl\\Service\xe2\x02\x1c\x46lyteidl\\Service\\GPBMetadata\xea\x02\x11\x46lyteidl::Serviceb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -39,7 +39,7 @@ DESCRIPTOR._options = None DESCRIPTOR._serialized_options = b'\n\024com.flyteidl.serviceB\nAdminProtoP\001Z=github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/service\242\002\003FSX\252\002\020Flyteidl.Service\312\002\020Flyteidl\\Service\342\002\034Flyteidl\\Service\\GPBMetadata\352\002\021Flyteidl::Service' _ADMINSERVICE.methods_by_name['CreateTask']._options = None - _ADMINSERVICE.methods_by_name['CreateTask']._serialized_options = b'\202\323\344\223\002\022:\001*\"\r/api/v1/tasks' + _ADMINSERVICE.methods_by_name['CreateTask']._serialized_options = b'\202\323\344\223\0023:\001*Z\037:\001*\"\032/api/v1/tasks/org/{id.org}\"\r/api/v1/tasks' _ADMINSERVICE.methods_by_name['GetTask']._options = None _ADMINSERVICE.methods_by_name['GetTask']._serialized_options = b'\202\323\344\223\002\215\001ZL\022J/api/v1/tasks/org/{id.org}/{id.project}/{id.domain}/{id.name}/{id.version}\022=/api/v1/tasks/{id.project}/{id.domain}/{id.name}/{id.version}' _ADMINSERVICE.methods_by_name['ListTaskIds']._options = None @@ -47,7 +47,7 @@ _ADMINSERVICE.methods_by_name['ListTasks']._options = None _ADMINSERVICE.methods_by_name['ListTasks']._serialized_options = b'\202\323\344\223\002\324\001Z?\022=/api/v1/tasks/org/{id.org}/{id.project}/{id.domain}/{id.name}Z(\022&/api/v1/tasks/{id.project}/{id.domain}Z5\0223/api/v1/tasks/org/{id.org}/{id.project}/{id.domain}\0220/api/v1/tasks/{id.project}/{id.domain}/{id.name}' _ADMINSERVICE.methods_by_name['CreateWorkflow']._options = None - _ADMINSERVICE.methods_by_name['CreateWorkflow']._serialized_options = b'\202\323\344\223\002\026:\001*\"\021/api/v1/workflows' + _ADMINSERVICE.methods_by_name['CreateWorkflow']._serialized_options = b'\202\323\344\223\002;:\001*Z#:\001*\"\036/api/v1/workflows/org/{id.org}\"\021/api/v1/workflows' _ADMINSERVICE.methods_by_name['GetWorkflow']._options = None _ADMINSERVICE.methods_by_name['GetWorkflow']._serialized_options = b'\202\323\344\223\002\225\001ZP\022N/api/v1/workflows/org/{id.org}/{id.project}/{id.domain}/{id.name}/{id.version}\022A/api/v1/workflows/{id.project}/{id.domain}/{id.name}/{id.version}' _ADMINSERVICE.methods_by_name['ListWorkflowIds']._options = None @@ -55,13 +55,13 @@ _ADMINSERVICE.methods_by_name['ListWorkflows']._options = None _ADMINSERVICE.methods_by_name['ListWorkflows']._serialized_options = b'\202\323\344\223\002\344\001ZC\022A/api/v1/workflows/org/{id.org}/{id.project}/{id.domain}/{id.name}Z,\022*/api/v1/workflows/{id.project}/{id.domain}Z9\0227/api/v1/workflows/org/{id.org}/{id.project}/{id.domain}\0224/api/v1/workflows/{id.project}/{id.domain}/{id.name}' _ADMINSERVICE.methods_by_name['CreateLaunchPlan']._options = None - _ADMINSERVICE.methods_by_name['CreateLaunchPlan']._serialized_options = b'\202\323\344\223\002\031:\001*\"\024/api/v1/launch_plans' + _ADMINSERVICE.methods_by_name['CreateLaunchPlan']._serialized_options = b'\202\323\344\223\002A:\001*Z&:\001*\"!/api/v1/launch_plans/org/{id.org}\"\024/api/v1/launch_plans' _ADMINSERVICE.methods_by_name['GetLaunchPlan']._options = None _ADMINSERVICE.methods_by_name['GetLaunchPlan']._serialized_options = b'\202\323\344\223\002\233\001ZS\022Q/api/v1/launch_plans/org/{id.org}/{id.project}/{id.domain}/{id.name}/{id.version}\022D/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version}' _ADMINSERVICE.methods_by_name['GetActiveLaunchPlan']._options = None _ADMINSERVICE.methods_by_name['GetActiveLaunchPlan']._serialized_options = b'\202\323\344\223\002\217\001ZM\022K/api/v1/active_launch_plans/org/{id.org}/{id.project}/{id.domain}/{id.name}\022>/api/v1/active_launch_plans/{id.project}/{id.domain}/{id.name}' _ADMINSERVICE.methods_by_name['ListActiveLaunchPlans']._options = None - _ADMINSERVICE.methods_by_name['ListActiveLaunchPlans']._serialized_options = b'\202\323\344\223\0020\022./api/v1/active_launch_plans/{project}/{domain}' + _ADMINSERVICE.methods_by_name['ListActiveLaunchPlans']._serialized_options = b'\202\323\344\223\002lZ:\0228/api/v1/active_launch_plans/org/{org}/{project}/{domain}\022./api/v1/active_launch_plans/{project}/{domain}' _ADMINSERVICE.methods_by_name['ListLaunchPlanIds']._options = None _ADMINSERVICE.methods_by_name['ListLaunchPlanIds']._serialized_options = b'\202\323\344\223\002dZ6\0224/api/v1/launch_plan_ids/org/{org}/{project}/{domain}\022*/api/v1/launch_plan_ids/{project}/{domain}' _ADMINSERVICE.methods_by_name['ListLaunchPlans']._options = None @@ -69,11 +69,11 @@ _ADMINSERVICE.methods_by_name['UpdateLaunchPlan']._options = None _ADMINSERVICE.methods_by_name['UpdateLaunchPlan']._serialized_options = b'\202\323\344\223\002\236\001:\001*ZS\032Q/api/v1/launch_plans/org/{id.org}/{id.project}/{id.domain}/{id.name}/{id.version}\032D/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version}' _ADMINSERVICE.methods_by_name['CreateExecution']._options = None - _ADMINSERVICE.methods_by_name['CreateExecution']._serialized_options = b'\202\323\344\223\002\027:\001*\"\022/api/v1/executions' + _ADMINSERVICE.methods_by_name['CreateExecution']._serialized_options = b'\202\323\344\223\002::\001*Z!:\001*\032\034/api/v1/executions/org/{org}\"\022/api/v1/executions' _ADMINSERVICE.methods_by_name['RelaunchExecution']._options = None - _ADMINSERVICE.methods_by_name['RelaunchExecution']._serialized_options = b'\202\323\344\223\002 :\001*\"\033/api/v1/executions/relaunch' + _ADMINSERVICE.methods_by_name['RelaunchExecution']._serialized_options = b'\202\323\344\223\002O:\001*Z-:\001*\"(/api/v1/executions/org/{id.org}/relaunch\"\033/api/v1/executions/relaunch' _ADMINSERVICE.methods_by_name['RecoverExecution']._options = None - _ADMINSERVICE.methods_by_name['RecoverExecution']._serialized_options = b'\202\323\344\223\002\037:\001*\"\032/api/v1/executions/recover' + _ADMINSERVICE.methods_by_name['RecoverExecution']._serialized_options = b'\202\323\344\223\002M:\001*Z,:\001*\"\'/api/v1/executions/org/{id.org}/recover\"\032/api/v1/executions/recover' _ADMINSERVICE.methods_by_name['GetExecution']._options = None _ADMINSERVICE.methods_by_name['GetExecution']._serialized_options = b'\202\323\344\223\002}ZD\022B/api/v1/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}\0225/api/v1/executions/{id.project}/{id.domain}/{id.name}' _ADMINSERVICE.methods_by_name['UpdateExecution']._options = None @@ -83,7 +83,7 @@ _ADMINSERVICE.methods_by_name['ListExecutions']._options = None _ADMINSERVICE.methods_by_name['ListExecutions']._serialized_options = b'\202\323\344\223\002iZ:\0228/api/v1/executions/org/{id.org}/{id.project}/{id.domain}\022+/api/v1/executions/{id.project}/{id.domain}' _ADMINSERVICE.methods_by_name['TerminateExecution']._options = None - _ADMINSERVICE.methods_by_name['TerminateExecution']._serialized_options = b'\202\323\344\223\002\210\001:\001*ZL:\001**G/api/v1/data/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}*5/api/v1/executions/{id.project}/{id.domain}/{id.name}' + _ADMINSERVICE.methods_by_name['TerminateExecution']._serialized_options = b'\202\323\344\223\002\203\001:\001*ZG:\001**B/api/v1/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}*5/api/v1/executions/{id.project}/{id.domain}/{id.name}' _ADMINSERVICE.methods_by_name['GetNodeExecution']._options = None _ADMINSERVICE.methods_by_name['GetNodeExecution']._serialized_options = b'\202\323\344\223\002\376\001Z\213\001\022\210\001/api/v1/node_executions/org/{id.execution_id.org}/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}\022n/api/v1/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}' _ADMINSERVICE.methods_by_name['ListNodeExecutions']._options = None @@ -93,17 +93,17 @@ _ADMINSERVICE.methods_by_name['GetNodeExecutionData']._options = None _ADMINSERVICE.methods_by_name['GetNodeExecutionData']._serialized_options = b'\202\323\344\223\002\210\002Z\220\001\022\215\001/api/v1/data/node_executions/org/{id.execution_id.org}/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}\022s/api/v1/data/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}' _ADMINSERVICE.methods_by_name['RegisterProject']._options = None - _ADMINSERVICE.methods_by_name['RegisterProject']._serialized_options = b'\202\323\344\223\002\025:\001*\"\020/api/v1/projects' + _ADMINSERVICE.methods_by_name['RegisterProject']._serialized_options = b'\202\323\344\223\002>:\001*Z\':\001*\"\"/api/v1/projects/org/{project.org}\"\020/api/v1/projects' _ADMINSERVICE.methods_by_name['UpdateProject']._options = None _ADMINSERVICE.methods_by_name['UpdateProject']._serialized_options = b'\202\323\344\223\002@:\001*Z$:\001*\032\037/api/v1/projects/org/{org}/{id}\032\025/api/v1/projects/{id}' _ADMINSERVICE.methods_by_name['ListProjects']._options = None - _ADMINSERVICE.methods_by_name['ListProjects']._serialized_options = b'\202\323\344\223\002\022\022\020/api/v1/projects' + _ADMINSERVICE.methods_by_name['ListProjects']._serialized_options = b'\202\323\344\223\0020Z\034\022\032/api/v1/projects/org/{org}\022\020/api/v1/projects' _ADMINSERVICE.methods_by_name['CreateWorkflowEvent']._options = None - _ADMINSERVICE.methods_by_name['CreateWorkflowEvent']._serialized_options = b'\202\323\344\223\002\035:\001*\"\030/api/v1/events/workflows' + _ADMINSERVICE.methods_by_name['CreateWorkflowEvent']._serialized_options = b'\202\323\344\223\002Y:\001*Z::\001*\"5/api/v1/events/org/{event.execution_id.org}/workflows\"\030/api/v1/events/workflows' _ADMINSERVICE.methods_by_name['CreateNodeEvent']._options = None - _ADMINSERVICE.methods_by_name['CreateNodeEvent']._serialized_options = b'\202\323\344\223\002\031:\001*\"\024/api/v1/events/nodes' + _ADMINSERVICE.methods_by_name['CreateNodeEvent']._serialized_options = b'\202\323\344\223\002T:\001*Z9:\001*\"4/api/v1/events/org/{event.id.execution_id.org}/nodes\"\024/api/v1/events/nodes' _ADMINSERVICE.methods_by_name['CreateTaskEvent']._options = None - _ADMINSERVICE.methods_by_name['CreateTaskEvent']._serialized_options = b'\202\323\344\223\002\031:\001*\"\024/api/v1/events/tasks' + _ADMINSERVICE.methods_by_name['CreateTaskEvent']._serialized_options = b'\202\323\344\223\002j:\001*ZO:\001*\"J/api/v1/events/org/{event.parent_node_execution_id.execution_id.org}/tasks\"\024/api/v1/events/tasks' _ADMINSERVICE.methods_by_name['GetTaskExecution']._options = None _ADMINSERVICE.methods_by_name['GetTaskExecution']._serialized_options = b'\202\323\344\223\002\347\004Z\310\002\022\305\002/api/v1/task_executions/org/{id.node_execution_id.execution_id.org}/{id.node_execution_id.execution_id.project}/{id.node_execution_id.execution_id.domain}/{id.node_execution_id.execution_id.name}/{id.node_execution_id.node_id}/{id.task_id.project}/{id.task_id.domain}/{id.task_id.name}/{id.task_id.version}/{id.retry_attempt}\022\231\002/api/v1/task_executions/{id.node_execution_id.execution_id.project}/{id.node_execution_id.execution_id.domain}/{id.node_execution_id.execution_id.name}/{id.node_execution_id.node_id}/{id.task_id.project}/{id.task_id.domain}/{id.task_id.name}/{id.task_id.version}/{id.retry_attempt}' _ADMINSERVICE.methods_by_name['ListTaskExecutions']._options = None @@ -129,7 +129,7 @@ _ADMINSERVICE.methods_by_name['DeleteWorkflowAttributes']._options = None _ADMINSERVICE.methods_by_name['DeleteWorkflowAttributes']._serialized_options = b'\202\323\344\223\002\210\001:\001*ZH:\001**C/api/v1/workflow_attributes/org/{org}/{project}/{domain}/{workflow}*9/api/v1/workflow_attributes/{project}/{domain}/{workflow}' _ADMINSERVICE.methods_by_name['ListMatchableAttributes']._options = None - _ADMINSERVICE.methods_by_name['ListMatchableAttributes']._serialized_options = b'\202\323\344\223\002\036\022\034/api/v1/matchable_attributes' + _ADMINSERVICE.methods_by_name['ListMatchableAttributes']._serialized_options = b'\202\323\344\223\002HZ(\022&/api/v1/matchable_attributes/org/{org}\022\034/api/v1/matchable_attributes' _ADMINSERVICE.methods_by_name['ListNamedEntities']._options = None _ADMINSERVICE.methods_by_name['ListNamedEntities']._serialized_options = b'\202\323\344\223\002\202\001ZE\022C/api/v1/named_entities/{resource_type}/org/{org}/{project}/{domain}\0229/api/v1/named_entities/{resource_type}/{project}/{domain}' _ADMINSERVICE.methods_by_name['GetNamedEntity']._options = None @@ -145,5 +145,5 @@ _ADMINSERVICE.methods_by_name['GetExecutionMetrics']._options = None _ADMINSERVICE.methods_by_name['GetExecutionMetrics']._serialized_options = b'\202\323\344\223\002\215\001ZL\022J/api/v1/metrics/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}\022=/api/v1/metrics/executions/{id.project}/{id.domain}/{id.name}' _globals['_ADMINSERVICE']._serialized_start=609 - _globals['_ADMINSERVICE']._serialized_end=15126 + _globals['_ADMINSERVICE']._serialized_end=15736 # @@protoc_insertion_point(module_scope) diff --git a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/README.md b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/README.md index 8b5357a947..6490f1b9a8 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/README.md +++ b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/README.md @@ -71,12 +71,19 @@ All URIs are relative to *http://localhost* Class | Method | HTTP request | Description ------------ | ------------- | ------------- | ------------- *AdminServiceApi* | [**create_execution**](docs/AdminServiceApi.md#create_execution) | **POST** /api/v1/executions | Triggers the creation of a :ref:`ref_flyteidl.admin.Execution` +*AdminServiceApi* | [**create_execution2**](docs/AdminServiceApi.md#create_execution2) | **PUT** /api/v1/executions/org/{org} | Triggers the creation of a :ref:`ref_flyteidl.admin.Execution` *AdminServiceApi* | [**create_launch_plan**](docs/AdminServiceApi.md#create_launch_plan) | **POST** /api/v1/launch_plans | Create and upload a :ref:`ref_flyteidl.admin.LaunchPlan` definition +*AdminServiceApi* | [**create_launch_plan2**](docs/AdminServiceApi.md#create_launch_plan2) | **POST** /api/v1/launch_plans/org/{id.org} | Create and upload a :ref:`ref_flyteidl.admin.LaunchPlan` definition *AdminServiceApi* | [**create_node_event**](docs/AdminServiceApi.md#create_node_event) | **POST** /api/v1/events/nodes | Indicates a :ref:`ref_flyteidl.event.NodeExecutionEvent` has occurred. +*AdminServiceApi* | [**create_node_event2**](docs/AdminServiceApi.md#create_node_event2) | **POST** /api/v1/events/org/{event.id.execution_id.org}/nodes | Indicates a :ref:`ref_flyteidl.event.NodeExecutionEvent` has occurred. *AdminServiceApi* | [**create_task**](docs/AdminServiceApi.md#create_task) | **POST** /api/v1/tasks | Create and upload a :ref:`ref_flyteidl.admin.Task` definition +*AdminServiceApi* | [**create_task2**](docs/AdminServiceApi.md#create_task2) | **POST** /api/v1/tasks/org/{id.org} | Create and upload a :ref:`ref_flyteidl.admin.Task` definition *AdminServiceApi* | [**create_task_event**](docs/AdminServiceApi.md#create_task_event) | **POST** /api/v1/events/tasks | Indicates a :ref:`ref_flyteidl.event.TaskExecutionEvent` has occurred. +*AdminServiceApi* | [**create_task_event2**](docs/AdminServiceApi.md#create_task_event2) | **POST** /api/v1/events/org/{event.parent_node_execution_id.execution_id.org}/tasks | Indicates a :ref:`ref_flyteidl.event.TaskExecutionEvent` has occurred. *AdminServiceApi* | [**create_workflow**](docs/AdminServiceApi.md#create_workflow) | **POST** /api/v1/workflows | Create and upload a :ref:`ref_flyteidl.admin.Workflow` definition +*AdminServiceApi* | [**create_workflow2**](docs/AdminServiceApi.md#create_workflow2) | **POST** /api/v1/workflows/org/{id.org} | Create and upload a :ref:`ref_flyteidl.admin.Workflow` definition *AdminServiceApi* | [**create_workflow_event**](docs/AdminServiceApi.md#create_workflow_event) | **POST** /api/v1/events/workflows | Indicates a :ref:`ref_flyteidl.event.WorkflowExecutionEvent` has occurred. +*AdminServiceApi* | [**create_workflow_event2**](docs/AdminServiceApi.md#create_workflow_event2) | **POST** /api/v1/events/org/{event.execution_id.org}/workflows | Indicates a :ref:`ref_flyteidl.event.WorkflowExecutionEvent` has occurred. *AdminServiceApi* | [**delete_project_attributes**](docs/AdminServiceApi.md#delete_project_attributes) | **DELETE** /api/v1/project_attributes/{project} | Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. *AdminServiceApi* | [**delete_project_attributes2**](docs/AdminServiceApi.md#delete_project_attributes2) | **DELETE** /api/v1/project_domain_attributes/org/{org}/{project} | Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. *AdminServiceApi* | [**delete_project_domain_attributes**](docs/AdminServiceApi.md#delete_project_domain_attributes) | **DELETE** /api/v1/project_domain_attributes/{project}/{domain} | Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. @@ -117,6 +124,7 @@ Class | Method | HTTP request | Description *AdminServiceApi* | [**get_workflow_attributes**](docs/AdminServiceApi.md#get_workflow_attributes) | **GET** /api/v1/workflow_attributes/{project}/{domain}/{workflow} | Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. *AdminServiceApi* | [**get_workflow_attributes2**](docs/AdminServiceApi.md#get_workflow_attributes2) | **GET** /api/v1/workflow_attributes/org/{org}/{project}/{domain}/{workflow} | Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. *AdminServiceApi* | [**list_active_launch_plans**](docs/AdminServiceApi.md#list_active_launch_plans) | **GET** /api/v1/active_launch_plans/{project}/{domain} | List active versions of :ref:`ref_flyteidl.admin.LaunchPlan`. +*AdminServiceApi* | [**list_active_launch_plans2**](docs/AdminServiceApi.md#list_active_launch_plans2) | **GET** /api/v1/active_launch_plans/org/{org}/{project}/{domain} | List active versions of :ref:`ref_flyteidl.admin.LaunchPlan`. *AdminServiceApi* | [**list_description_entities**](docs/AdminServiceApi.md#list_description_entities) | **GET** /api/v1/description_entities/{resource_type}/{id.project}/{id.domain}/{id.name} | Fetch a list of :ref:`ref_flyteidl.admin.DescriptionEntity` definitions. *AdminServiceApi* | [**list_description_entities2**](docs/AdminServiceApi.md#list_description_entities2) | **GET** /api/v1/description_entities/{resource_type}/org/{id.org}/{id.project}/{id.domain}/{id.name} | Fetch a list of :ref:`ref_flyteidl.admin.DescriptionEntity` definitions. *AdminServiceApi* | [**list_description_entities3**](docs/AdminServiceApi.md#list_description_entities3) | **GET** /api/v1/description_entities/{resource_type}/{id.project}/{id.domain} | Fetch a list of :ref:`ref_flyteidl.admin.DescriptionEntity` definitions. @@ -130,6 +138,7 @@ Class | Method | HTTP request | Description *AdminServiceApi* | [**list_launch_plans3**](docs/AdminServiceApi.md#list_launch_plans3) | **GET** /api/v1/launch_plans/{id.project}/{id.domain} | Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. *AdminServiceApi* | [**list_launch_plans4**](docs/AdminServiceApi.md#list_launch_plans4) | **GET** /api/v1/launch_plans/org/{id.org}/{id.project}/{id.domain} | Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. *AdminServiceApi* | [**list_matchable_attributes**](docs/AdminServiceApi.md#list_matchable_attributes) | **GET** /api/v1/matchable_attributes | Lists custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a specific resource type. +*AdminServiceApi* | [**list_matchable_attributes2**](docs/AdminServiceApi.md#list_matchable_attributes2) | **GET** /api/v1/matchable_attributes/org/{org} | Lists custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a specific resource type. *AdminServiceApi* | [**list_named_entities**](docs/AdminServiceApi.md#list_named_entities) | **GET** /api/v1/named_entities/{resource_type}/{project}/{domain} | Returns a list of :ref:`ref_flyteidl.admin.NamedEntity` objects. *AdminServiceApi* | [**list_named_entities2**](docs/AdminServiceApi.md#list_named_entities2) | **GET** /api/v1/named_entities/{resource_type}/org/{org}/{project}/{domain} | Returns a list of :ref:`ref_flyteidl.admin.NamedEntity` objects. *AdminServiceApi* | [**list_node_executions**](docs/AdminServiceApi.md#list_node_executions) | **GET** /api/v1/node_executions/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name} | Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution`. @@ -137,6 +146,7 @@ Class | Method | HTTP request | Description *AdminServiceApi* | [**list_node_executions_for_task**](docs/AdminServiceApi.md#list_node_executions_for_task) | **GET** /api/v1/children/task_executions/{task_execution_id.node_execution_id.execution_id.project}/{task_execution_id.node_execution_id.execution_id.domain}/{task_execution_id.node_execution_id.execution_id.name}/{task_execution_id.node_execution_id.node_id}/{task_execution_id.task_id.project}/{task_execution_id.task_id.domain}/{task_execution_id.task_id.name}/{task_execution_id.task_id.version}/{task_execution_id.retry_attempt} | Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution` launched by the reference :ref:`ref_flyteidl.admin.TaskExecution`. *AdminServiceApi* | [**list_node_executions_for_task2**](docs/AdminServiceApi.md#list_node_executions_for_task2) | **GET** /api/v1/children/task_executions/org/{task_execution_id.node_execution_id.execution_id.org}/{task_execution_id.node_execution_id.execution_id.project}/{task_execution_id.node_execution_id.execution_id.domain}/{task_execution_id.node_execution_id.execution_id.name}/{task_execution_id.node_execution_id.node_id}/{task_execution_id.task_id.project}/{task_execution_id.task_id.domain}/{task_execution_id.task_id.name}/{task_execution_id.task_id.version}/{task_execution_id.retry_attempt} | Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution` launched by the reference :ref:`ref_flyteidl.admin.TaskExecution`. *AdminServiceApi* | [**list_projects**](docs/AdminServiceApi.md#list_projects) | **GET** /api/v1/projects | Fetches a list of :ref:`ref_flyteidl.admin.Project` +*AdminServiceApi* | [**list_projects2**](docs/AdminServiceApi.md#list_projects2) | **GET** /api/v1/projects/org/{org} | Fetches a list of :ref:`ref_flyteidl.admin.Project` *AdminServiceApi* | [**list_task_executions**](docs/AdminServiceApi.md#list_task_executions) | **GET** /api/v1/task_executions/{node_execution_id.execution_id.project}/{node_execution_id.execution_id.domain}/{node_execution_id.execution_id.name}/{node_execution_id.node_id} | Fetches a list of :ref:`ref_flyteidl.admin.TaskExecution`. *AdminServiceApi* | [**list_task_executions2**](docs/AdminServiceApi.md#list_task_executions2) | **GET** /api/v1/task_executions/org/{node_execution_id.execution_id.org}/{node_execution_id.execution_id.project}/{node_execution_id.execution_id.domain}/{node_execution_id.execution_id.name}/{node_execution_id.node_id} | Fetches a list of :ref:`ref_flyteidl.admin.TaskExecution`. *AdminServiceApi* | [**list_task_ids**](docs/AdminServiceApi.md#list_task_ids) | **GET** /api/v1/task_ids/{project}/{domain} | Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of task objects. @@ -152,10 +162,13 @@ Class | Method | HTTP request | Description *AdminServiceApi* | [**list_workflows3**](docs/AdminServiceApi.md#list_workflows3) | **GET** /api/v1/workflows/{id.project}/{id.domain} | Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. *AdminServiceApi* | [**list_workflows4**](docs/AdminServiceApi.md#list_workflows4) | **GET** /api/v1/workflows/org/{id.org}/{id.project}/{id.domain} | Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. *AdminServiceApi* | [**recover_execution**](docs/AdminServiceApi.md#recover_execution) | **POST** /api/v1/executions/recover | Recreates a previously-run workflow execution that will only start executing from the last known failure point. In Recover mode, users cannot change any input parameters or update the version of the execution. This is extremely useful to recover from system errors and byzantine faults like - Loss of K8s cluster, bugs in platform or instability, machine failures, downstream system failures (downstream services), or simply to recover executions that failed because of retry exhaustion and should complete if tried again. See :ref:`ref_flyteidl.admin.ExecutionRecoverRequest` for more details. +*AdminServiceApi* | [**recover_execution2**](docs/AdminServiceApi.md#recover_execution2) | **POST** /api/v1/executions/org/{id.org}/recover | Recreates a previously-run workflow execution that will only start executing from the last known failure point. In Recover mode, users cannot change any input parameters or update the version of the execution. This is extremely useful to recover from system errors and byzantine faults like - Loss of K8s cluster, bugs in platform or instability, machine failures, downstream system failures (downstream services), or simply to recover executions that failed because of retry exhaustion and should complete if tried again. See :ref:`ref_flyteidl.admin.ExecutionRecoverRequest` for more details. *AdminServiceApi* | [**register_project**](docs/AdminServiceApi.md#register_project) | **POST** /api/v1/projects | Registers a :ref:`ref_flyteidl.admin.Project` with the Flyte deployment. +*AdminServiceApi* | [**register_project2**](docs/AdminServiceApi.md#register_project2) | **POST** /api/v1/projects/org/{project.org} | Registers a :ref:`ref_flyteidl.admin.Project` with the Flyte deployment. *AdminServiceApi* | [**relaunch_execution**](docs/AdminServiceApi.md#relaunch_execution) | **POST** /api/v1/executions/relaunch | Triggers the creation of an identical :ref:`ref_flyteidl.admin.Execution` +*AdminServiceApi* | [**relaunch_execution2**](docs/AdminServiceApi.md#relaunch_execution2) | **POST** /api/v1/executions/org/{id.org}/relaunch | Triggers the creation of an identical :ref:`ref_flyteidl.admin.Execution` *AdminServiceApi* | [**terminate_execution**](docs/AdminServiceApi.md#terminate_execution) | **DELETE** /api/v1/executions/{id.project}/{id.domain}/{id.name} | Terminates an in-progress :ref:`ref_flyteidl.admin.Execution`. -*AdminServiceApi* | [**terminate_execution2**](docs/AdminServiceApi.md#terminate_execution2) | **DELETE** /api/v1/data/executions/org/{id.org}/{id.project}/{id.domain}/{id.name} | Terminates an in-progress :ref:`ref_flyteidl.admin.Execution`. +*AdminServiceApi* | [**terminate_execution2**](docs/AdminServiceApi.md#terminate_execution2) | **DELETE** /api/v1/executions/org/{id.org}/{id.project}/{id.domain}/{id.name} | Terminates an in-progress :ref:`ref_flyteidl.admin.Execution`. *AdminServiceApi* | [**update_execution**](docs/AdminServiceApi.md#update_execution) | **PUT** /api/v1/executions/{id.project}/{id.domain}/{id.name} | Update execution belonging to project domain :ref:`ref_flyteidl.admin.Execution`. *AdminServiceApi* | [**update_execution2**](docs/AdminServiceApi.md#update_execution2) | **PUT** /api/v1/executions/org/{id.org}/{id.project}/{id.domain}/{id.name} | Update execution belonging to project domain :ref:`ref_flyteidl.admin.Execution`. *AdminServiceApi* | [**update_launch_plan**](docs/AdminServiceApi.md#update_launch_plan) | **PUT** /api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version} | Updates the status of a registered :ref:`ref_flyteidl.admin.LaunchPlan`. diff --git a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/api/admin_service_api.py b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/api/admin_service_api.py index 1e91c85c21..ee0e11ddb3 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/api/admin_service_api.py +++ b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/api/admin_service_api.py @@ -130,43 +130,45 @@ def create_execution_with_http_info(self, body, **kwargs): # noqa: E501 _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def create_launch_plan(self, body, **kwargs): # noqa: E501 - """Create and upload a :ref:`ref_flyteidl.admin.LaunchPlan` definition # noqa: E501 + def create_execution2(self, org, body, **kwargs): # noqa: E501 + """Triggers the creation of a :ref:`ref_flyteidl.admin.Execution` # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.create_launch_plan(body, async_req=True) + >>> thread = api.create_execution2(org, body, async_req=True) >>> result = thread.get() :param async_req bool - :param AdminLaunchPlanCreateRequest body: (required) - :return: AdminLaunchPlanCreateResponse + :param str org: Optional, org key applied to the resource. (required) + :param AdminExecutionCreateRequest body: (required) + :return: AdminExecutionCreateResponse If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.create_launch_plan_with_http_info(body, **kwargs) # noqa: E501 + return self.create_execution2_with_http_info(org, body, **kwargs) # noqa: E501 else: - (data) = self.create_launch_plan_with_http_info(body, **kwargs) # noqa: E501 + (data) = self.create_execution2_with_http_info(org, body, **kwargs) # noqa: E501 return data - def create_launch_plan_with_http_info(self, body, **kwargs): # noqa: E501 - """Create and upload a :ref:`ref_flyteidl.admin.LaunchPlan` definition # noqa: E501 + def create_execution2_with_http_info(self, org, body, **kwargs): # noqa: E501 + """Triggers the creation of a :ref:`ref_flyteidl.admin.Execution` # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.create_launch_plan_with_http_info(body, async_req=True) + >>> thread = api.create_execution2_with_http_info(org, body, async_req=True) >>> result = thread.get() :param async_req bool - :param AdminLaunchPlanCreateRequest body: (required) - :return: AdminLaunchPlanCreateResponse + :param str org: Optional, org key applied to the resource. (required) + :param AdminExecutionCreateRequest body: (required) + :return: AdminExecutionCreateResponse If the method is called asynchronously, returns the request thread. """ - all_params = ['body'] # noqa: E501 + all_params = ['org', 'body'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -177,18 +179,24 @@ def create_launch_plan_with_http_info(self, body, **kwargs): # noqa: E501 if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method create_launch_plan" % key + " to method create_execution2" % key ) params[key] = val del params['kwargs'] + # verify the required parameter 'org' is set + if ('org' not in params or + params['org'] is None): + raise ValueError("Missing the required parameter `org` when calling `create_execution2`") # noqa: E501 # verify the required parameter 'body' is set if ('body' not in params or params['body'] is None): - raise ValueError("Missing the required parameter `body` when calling `create_launch_plan`") # noqa: E501 + raise ValueError("Missing the required parameter `body` when calling `create_execution2`") # noqa: E501 collection_formats = {} path_params = {} + if 'org' in params: + path_params['org'] = params['org'] # noqa: E501 query_params = [] @@ -212,14 +220,14 @@ def create_launch_plan_with_http_info(self, body, **kwargs): # noqa: E501 auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/launch_plans', 'POST', + '/api/v1/executions/org/{org}', 'PUT', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminLaunchPlanCreateResponse', # noqa: E501 + response_type='AdminExecutionCreateResponse', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -227,38 +235,38 @@ def create_launch_plan_with_http_info(self, body, **kwargs): # noqa: E501 _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def create_node_event(self, body, **kwargs): # noqa: E501 - """Indicates a :ref:`ref_flyteidl.event.NodeExecutionEvent` has occurred. # noqa: E501 + def create_launch_plan(self, body, **kwargs): # noqa: E501 + """Create and upload a :ref:`ref_flyteidl.admin.LaunchPlan` definition # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.create_node_event(body, async_req=True) + >>> thread = api.create_launch_plan(body, async_req=True) >>> result = thread.get() :param async_req bool - :param AdminNodeExecutionEventRequest body: (required) - :return: AdminNodeExecutionEventResponse + :param AdminLaunchPlanCreateRequest body: (required) + :return: AdminLaunchPlanCreateResponse If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.create_node_event_with_http_info(body, **kwargs) # noqa: E501 + return self.create_launch_plan_with_http_info(body, **kwargs) # noqa: E501 else: - (data) = self.create_node_event_with_http_info(body, **kwargs) # noqa: E501 + (data) = self.create_launch_plan_with_http_info(body, **kwargs) # noqa: E501 return data - def create_node_event_with_http_info(self, body, **kwargs): # noqa: E501 - """Indicates a :ref:`ref_flyteidl.event.NodeExecutionEvent` has occurred. # noqa: E501 + def create_launch_plan_with_http_info(self, body, **kwargs): # noqa: E501 + """Create and upload a :ref:`ref_flyteidl.admin.LaunchPlan` definition # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.create_node_event_with_http_info(body, async_req=True) + >>> thread = api.create_launch_plan_with_http_info(body, async_req=True) >>> result = thread.get() :param async_req bool - :param AdminNodeExecutionEventRequest body: (required) - :return: AdminNodeExecutionEventResponse + :param AdminLaunchPlanCreateRequest body: (required) + :return: AdminLaunchPlanCreateResponse If the method is called asynchronously, returns the request thread. """ @@ -274,14 +282,14 @@ def create_node_event_with_http_info(self, body, **kwargs): # noqa: E501 if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method create_node_event" % key + " to method create_launch_plan" % key ) params[key] = val del params['kwargs'] # verify the required parameter 'body' is set if ('body' not in params or params['body'] is None): - raise ValueError("Missing the required parameter `body` when calling `create_node_event`") # noqa: E501 + raise ValueError("Missing the required parameter `body` when calling `create_launch_plan`") # noqa: E501 collection_formats = {} @@ -309,14 +317,14 @@ def create_node_event_with_http_info(self, body, **kwargs): # noqa: E501 auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/events/nodes', 'POST', + '/api/v1/launch_plans', 'POST', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminNodeExecutionEventResponse', # noqa: E501 + response_type='AdminLaunchPlanCreateResponse', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -324,43 +332,45 @@ def create_node_event_with_http_info(self, body, **kwargs): # noqa: E501 _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def create_task(self, body, **kwargs): # noqa: E501 - """Create and upload a :ref:`ref_flyteidl.admin.Task` definition # noqa: E501 + def create_launch_plan2(self, id_org, body, **kwargs): # noqa: E501 + """Create and upload a :ref:`ref_flyteidl.admin.LaunchPlan` definition # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.create_task(body, async_req=True) + >>> thread = api.create_launch_plan2(id_org, body, async_req=True) >>> result = thread.get() :param async_req bool - :param FlyteidladminTaskCreateRequest body: (required) - :return: FlyteidladminTaskCreateResponse + :param str id_org: Optional, org key applied to the resource. (required) + :param AdminLaunchPlanCreateRequest body: (required) + :return: AdminLaunchPlanCreateResponse If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.create_task_with_http_info(body, **kwargs) # noqa: E501 + return self.create_launch_plan2_with_http_info(id_org, body, **kwargs) # noqa: E501 else: - (data) = self.create_task_with_http_info(body, **kwargs) # noqa: E501 + (data) = self.create_launch_plan2_with_http_info(id_org, body, **kwargs) # noqa: E501 return data - def create_task_with_http_info(self, body, **kwargs): # noqa: E501 - """Create and upload a :ref:`ref_flyteidl.admin.Task` definition # noqa: E501 + def create_launch_plan2_with_http_info(self, id_org, body, **kwargs): # noqa: E501 + """Create and upload a :ref:`ref_flyteidl.admin.LaunchPlan` definition # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.create_task_with_http_info(body, async_req=True) + >>> thread = api.create_launch_plan2_with_http_info(id_org, body, async_req=True) >>> result = thread.get() :param async_req bool - :param FlyteidladminTaskCreateRequest body: (required) - :return: FlyteidladminTaskCreateResponse + :param str id_org: Optional, org key applied to the resource. (required) + :param AdminLaunchPlanCreateRequest body: (required) + :return: AdminLaunchPlanCreateResponse If the method is called asynchronously, returns the request thread. """ - all_params = ['body'] # noqa: E501 + all_params = ['id_org', 'body'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -371,18 +381,24 @@ def create_task_with_http_info(self, body, **kwargs): # noqa: E501 if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method create_task" % key + " to method create_launch_plan2" % key ) params[key] = val del params['kwargs'] + # verify the required parameter 'id_org' is set + if ('id_org' not in params or + params['id_org'] is None): + raise ValueError("Missing the required parameter `id_org` when calling `create_launch_plan2`") # noqa: E501 # verify the required parameter 'body' is set if ('body' not in params or params['body'] is None): - raise ValueError("Missing the required parameter `body` when calling `create_task`") # noqa: E501 + raise ValueError("Missing the required parameter `body` when calling `create_launch_plan2`") # noqa: E501 collection_formats = {} path_params = {} + if 'id_org' in params: + path_params['id.org'] = params['id_org'] # noqa: E501 query_params = [] @@ -406,14 +422,14 @@ def create_task_with_http_info(self, body, **kwargs): # noqa: E501 auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/tasks', 'POST', + '/api/v1/launch_plans/org/{id.org}', 'POST', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='FlyteidladminTaskCreateResponse', # noqa: E501 + response_type='AdminLaunchPlanCreateResponse', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -421,38 +437,38 @@ def create_task_with_http_info(self, body, **kwargs): # noqa: E501 _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def create_task_event(self, body, **kwargs): # noqa: E501 - """Indicates a :ref:`ref_flyteidl.event.TaskExecutionEvent` has occurred. # noqa: E501 + def create_node_event(self, body, **kwargs): # noqa: E501 + """Indicates a :ref:`ref_flyteidl.event.NodeExecutionEvent` has occurred. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.create_task_event(body, async_req=True) + >>> thread = api.create_node_event(body, async_req=True) >>> result = thread.get() :param async_req bool - :param AdminTaskExecutionEventRequest body: (required) - :return: AdminTaskExecutionEventResponse + :param AdminNodeExecutionEventRequest body: (required) + :return: AdminNodeExecutionEventResponse If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.create_task_event_with_http_info(body, **kwargs) # noqa: E501 + return self.create_node_event_with_http_info(body, **kwargs) # noqa: E501 else: - (data) = self.create_task_event_with_http_info(body, **kwargs) # noqa: E501 + (data) = self.create_node_event_with_http_info(body, **kwargs) # noqa: E501 return data - def create_task_event_with_http_info(self, body, **kwargs): # noqa: E501 - """Indicates a :ref:`ref_flyteidl.event.TaskExecutionEvent` has occurred. # noqa: E501 + def create_node_event_with_http_info(self, body, **kwargs): # noqa: E501 + """Indicates a :ref:`ref_flyteidl.event.NodeExecutionEvent` has occurred. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.create_task_event_with_http_info(body, async_req=True) + >>> thread = api.create_node_event_with_http_info(body, async_req=True) >>> result = thread.get() :param async_req bool - :param AdminTaskExecutionEventRequest body: (required) - :return: AdminTaskExecutionEventResponse + :param AdminNodeExecutionEventRequest body: (required) + :return: AdminNodeExecutionEventResponse If the method is called asynchronously, returns the request thread. """ @@ -468,14 +484,14 @@ def create_task_event_with_http_info(self, body, **kwargs): # noqa: E501 if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method create_task_event" % key + " to method create_node_event" % key ) params[key] = val del params['kwargs'] # verify the required parameter 'body' is set if ('body' not in params or params['body'] is None): - raise ValueError("Missing the required parameter `body` when calling `create_task_event`") # noqa: E501 + raise ValueError("Missing the required parameter `body` when calling `create_node_event`") # noqa: E501 collection_formats = {} @@ -503,14 +519,14 @@ def create_task_event_with_http_info(self, body, **kwargs): # noqa: E501 auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/events/tasks', 'POST', + '/api/v1/events/nodes', 'POST', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminTaskExecutionEventResponse', # noqa: E501 + response_type='AdminNodeExecutionEventResponse', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -518,43 +534,45 @@ def create_task_event_with_http_info(self, body, **kwargs): # noqa: E501 _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def create_workflow(self, body, **kwargs): # noqa: E501 - """Create and upload a :ref:`ref_flyteidl.admin.Workflow` definition # noqa: E501 + def create_node_event2(self, event_id_execution_id_org, body, **kwargs): # noqa: E501 + """Indicates a :ref:`ref_flyteidl.event.NodeExecutionEvent` has occurred. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.create_workflow(body, async_req=True) + >>> thread = api.create_node_event2(event_id_execution_id_org, body, async_req=True) >>> result = thread.get() :param async_req bool - :param AdminWorkflowCreateRequest body: (required) - :return: AdminWorkflowCreateResponse + :param str event_id_execution_id_org: Optional, org key applied to the resource. (required) + :param AdminNodeExecutionEventRequest body: (required) + :return: AdminNodeExecutionEventResponse If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.create_workflow_with_http_info(body, **kwargs) # noqa: E501 + return self.create_node_event2_with_http_info(event_id_execution_id_org, body, **kwargs) # noqa: E501 else: - (data) = self.create_workflow_with_http_info(body, **kwargs) # noqa: E501 + (data) = self.create_node_event2_with_http_info(event_id_execution_id_org, body, **kwargs) # noqa: E501 return data - def create_workflow_with_http_info(self, body, **kwargs): # noqa: E501 - """Create and upload a :ref:`ref_flyteidl.admin.Workflow` definition # noqa: E501 + def create_node_event2_with_http_info(self, event_id_execution_id_org, body, **kwargs): # noqa: E501 + """Indicates a :ref:`ref_flyteidl.event.NodeExecutionEvent` has occurred. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.create_workflow_with_http_info(body, async_req=True) + >>> thread = api.create_node_event2_with_http_info(event_id_execution_id_org, body, async_req=True) >>> result = thread.get() :param async_req bool - :param AdminWorkflowCreateRequest body: (required) - :return: AdminWorkflowCreateResponse + :param str event_id_execution_id_org: Optional, org key applied to the resource. (required) + :param AdminNodeExecutionEventRequest body: (required) + :return: AdminNodeExecutionEventResponse If the method is called asynchronously, returns the request thread. """ - all_params = ['body'] # noqa: E501 + all_params = ['event_id_execution_id_org', 'body'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -565,18 +583,24 @@ def create_workflow_with_http_info(self, body, **kwargs): # noqa: E501 if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method create_workflow" % key + " to method create_node_event2" % key ) params[key] = val del params['kwargs'] + # verify the required parameter 'event_id_execution_id_org' is set + if ('event_id_execution_id_org' not in params or + params['event_id_execution_id_org'] is None): + raise ValueError("Missing the required parameter `event_id_execution_id_org` when calling `create_node_event2`") # noqa: E501 # verify the required parameter 'body' is set if ('body' not in params or params['body'] is None): - raise ValueError("Missing the required parameter `body` when calling `create_workflow`") # noqa: E501 + raise ValueError("Missing the required parameter `body` when calling `create_node_event2`") # noqa: E501 collection_formats = {} path_params = {} + if 'event_id_execution_id_org' in params: + path_params['event.id.execution_id.org'] = params['event_id_execution_id_org'] # noqa: E501 query_params = [] @@ -600,14 +624,14 @@ def create_workflow_with_http_info(self, body, **kwargs): # noqa: E501 auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/workflows', 'POST', + '/api/v1/events/org/{event.id.execution_id.org}/nodes', 'POST', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminWorkflowCreateResponse', # noqa: E501 + response_type='AdminNodeExecutionEventResponse', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -615,38 +639,38 @@ def create_workflow_with_http_info(self, body, **kwargs): # noqa: E501 _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def create_workflow_event(self, body, **kwargs): # noqa: E501 - """Indicates a :ref:`ref_flyteidl.event.WorkflowExecutionEvent` has occurred. # noqa: E501 + def create_task(self, body, **kwargs): # noqa: E501 + """Create and upload a :ref:`ref_flyteidl.admin.Task` definition # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.create_workflow_event(body, async_req=True) + >>> thread = api.create_task(body, async_req=True) >>> result = thread.get() :param async_req bool - :param AdminWorkflowExecutionEventRequest body: (required) - :return: AdminWorkflowExecutionEventResponse + :param FlyteidladminTaskCreateRequest body: (required) + :return: FlyteidladminTaskCreateResponse If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.create_workflow_event_with_http_info(body, **kwargs) # noqa: E501 + return self.create_task_with_http_info(body, **kwargs) # noqa: E501 else: - (data) = self.create_workflow_event_with_http_info(body, **kwargs) # noqa: E501 + (data) = self.create_task_with_http_info(body, **kwargs) # noqa: E501 return data - def create_workflow_event_with_http_info(self, body, **kwargs): # noqa: E501 - """Indicates a :ref:`ref_flyteidl.event.WorkflowExecutionEvent` has occurred. # noqa: E501 + def create_task_with_http_info(self, body, **kwargs): # noqa: E501 + """Create and upload a :ref:`ref_flyteidl.admin.Task` definition # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.create_workflow_event_with_http_info(body, async_req=True) + >>> thread = api.create_task_with_http_info(body, async_req=True) >>> result = thread.get() :param async_req bool - :param AdminWorkflowExecutionEventRequest body: (required) - :return: AdminWorkflowExecutionEventResponse + :param FlyteidladminTaskCreateRequest body: (required) + :return: FlyteidladminTaskCreateResponse If the method is called asynchronously, returns the request thread. """ @@ -662,14 +686,14 @@ def create_workflow_event_with_http_info(self, body, **kwargs): # noqa: E501 if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method create_workflow_event" % key + " to method create_task" % key ) params[key] = val del params['kwargs'] # verify the required parameter 'body' is set if ('body' not in params or params['body'] is None): - raise ValueError("Missing the required parameter `body` when calling `create_workflow_event`") # noqa: E501 + raise ValueError("Missing the required parameter `body` when calling `create_task`") # noqa: E501 collection_formats = {} @@ -697,14 +721,14 @@ def create_workflow_event_with_http_info(self, body, **kwargs): # noqa: E501 auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/events/workflows', 'POST', + '/api/v1/tasks', 'POST', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminWorkflowExecutionEventResponse', # noqa: E501 + response_type='FlyteidladminTaskCreateResponse', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -712,45 +736,45 @@ def create_workflow_event_with_http_info(self, body, **kwargs): # noqa: E501 _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def delete_project_attributes(self, project, body, **kwargs): # noqa: E501 - """Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. # noqa: E501 + def create_task2(self, id_org, body, **kwargs): # noqa: E501 + """Create and upload a :ref:`ref_flyteidl.admin.Task` definition # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.delete_project_attributes(project, body, async_req=True) + >>> thread = api.create_task2(id_org, body, async_req=True) >>> result = thread.get() :param async_req bool - :param str project: Unique project id which this set of attributes references. +required (required) - :param AdminProjectAttributesDeleteRequest body: (required) - :return: AdminProjectAttributesDeleteResponse + :param str id_org: Optional, org key applied to the resource. (required) + :param FlyteidladminTaskCreateRequest body: (required) + :return: FlyteidladminTaskCreateResponse If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.delete_project_attributes_with_http_info(project, body, **kwargs) # noqa: E501 + return self.create_task2_with_http_info(id_org, body, **kwargs) # noqa: E501 else: - (data) = self.delete_project_attributes_with_http_info(project, body, **kwargs) # noqa: E501 + (data) = self.create_task2_with_http_info(id_org, body, **kwargs) # noqa: E501 return data - def delete_project_attributes_with_http_info(self, project, body, **kwargs): # noqa: E501 - """Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. # noqa: E501 + def create_task2_with_http_info(self, id_org, body, **kwargs): # noqa: E501 + """Create and upload a :ref:`ref_flyteidl.admin.Task` definition # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.delete_project_attributes_with_http_info(project, body, async_req=True) + >>> thread = api.create_task2_with_http_info(id_org, body, async_req=True) >>> result = thread.get() :param async_req bool - :param str project: Unique project id which this set of attributes references. +required (required) - :param AdminProjectAttributesDeleteRequest body: (required) - :return: AdminProjectAttributesDeleteResponse + :param str id_org: Optional, org key applied to the resource. (required) + :param FlyteidladminTaskCreateRequest body: (required) + :return: FlyteidladminTaskCreateResponse If the method is called asynchronously, returns the request thread. """ - all_params = ['project', 'body'] # noqa: E501 + all_params = ['id_org', 'body'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -761,24 +785,24 @@ def delete_project_attributes_with_http_info(self, project, body, **kwargs): # if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method delete_project_attributes" % key + " to method create_task2" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'project' is set - if ('project' not in params or - params['project'] is None): - raise ValueError("Missing the required parameter `project` when calling `delete_project_attributes`") # noqa: E501 + # verify the required parameter 'id_org' is set + if ('id_org' not in params or + params['id_org'] is None): + raise ValueError("Missing the required parameter `id_org` when calling `create_task2`") # noqa: E501 # verify the required parameter 'body' is set if ('body' not in params or params['body'] is None): - raise ValueError("Missing the required parameter `body` when calling `delete_project_attributes`") # noqa: E501 + raise ValueError("Missing the required parameter `body` when calling `create_task2`") # noqa: E501 collection_formats = {} path_params = {} - if 'project' in params: - path_params['project'] = params['project'] # noqa: E501 + if 'id_org' in params: + path_params['id.org'] = params['id_org'] # noqa: E501 query_params = [] @@ -802,14 +826,14 @@ def delete_project_attributes_with_http_info(self, project, body, **kwargs): # auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/project_attributes/{project}', 'DELETE', + '/api/v1/tasks/org/{id.org}', 'POST', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminProjectAttributesDeleteResponse', # noqa: E501 + response_type='FlyteidladminTaskCreateResponse', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -817,47 +841,43 @@ def delete_project_attributes_with_http_info(self, project, body, **kwargs): # _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def delete_project_attributes2(self, org, project, body, **kwargs): # noqa: E501 - """Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. # noqa: E501 + def create_task_event(self, body, **kwargs): # noqa: E501 + """Indicates a :ref:`ref_flyteidl.event.TaskExecutionEvent` has occurred. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.delete_project_attributes2(org, project, body, async_req=True) + >>> thread = api.create_task_event(body, async_req=True) >>> result = thread.get() :param async_req bool - :param str org: Optional, org key applied to the project. (required) - :param str project: Unique project id which this set of attributes references. +required (required) - :param AdminProjectAttributesDeleteRequest body: (required) - :return: AdminProjectAttributesDeleteResponse + :param AdminTaskExecutionEventRequest body: (required) + :return: AdminTaskExecutionEventResponse If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.delete_project_attributes2_with_http_info(org, project, body, **kwargs) # noqa: E501 + return self.create_task_event_with_http_info(body, **kwargs) # noqa: E501 else: - (data) = self.delete_project_attributes2_with_http_info(org, project, body, **kwargs) # noqa: E501 + (data) = self.create_task_event_with_http_info(body, **kwargs) # noqa: E501 return data - def delete_project_attributes2_with_http_info(self, org, project, body, **kwargs): # noqa: E501 - """Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. # noqa: E501 + def create_task_event_with_http_info(self, body, **kwargs): # noqa: E501 + """Indicates a :ref:`ref_flyteidl.event.TaskExecutionEvent` has occurred. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.delete_project_attributes2_with_http_info(org, project, body, async_req=True) + >>> thread = api.create_task_event_with_http_info(body, async_req=True) >>> result = thread.get() :param async_req bool - :param str org: Optional, org key applied to the project. (required) - :param str project: Unique project id which this set of attributes references. +required (required) - :param AdminProjectAttributesDeleteRequest body: (required) - :return: AdminProjectAttributesDeleteResponse + :param AdminTaskExecutionEventRequest body: (required) + :return: AdminTaskExecutionEventResponse If the method is called asynchronously, returns the request thread. """ - all_params = ['org', 'project', 'body'] # noqa: E501 + all_params = ['body'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -868,30 +888,18 @@ def delete_project_attributes2_with_http_info(self, org, project, body, **kwargs if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method delete_project_attributes2" % key + " to method create_task_event" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'org' is set - if ('org' not in params or - params['org'] is None): - raise ValueError("Missing the required parameter `org` when calling `delete_project_attributes2`") # noqa: E501 - # verify the required parameter 'project' is set - if ('project' not in params or - params['project'] is None): - raise ValueError("Missing the required parameter `project` when calling `delete_project_attributes2`") # noqa: E501 # verify the required parameter 'body' is set if ('body' not in params or params['body'] is None): - raise ValueError("Missing the required parameter `body` when calling `delete_project_attributes2`") # noqa: E501 + raise ValueError("Missing the required parameter `body` when calling `create_task_event`") # noqa: E501 collection_formats = {} path_params = {} - if 'org' in params: - path_params['org'] = params['org'] # noqa: E501 - if 'project' in params: - path_params['project'] = params['project'] # noqa: E501 query_params = [] @@ -915,14 +923,14 @@ def delete_project_attributes2_with_http_info(self, org, project, body, **kwargs auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/project_domain_attributes/org/{org}/{project}', 'DELETE', + '/api/v1/events/tasks', 'POST', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminProjectAttributesDeleteResponse', # noqa: E501 + response_type='AdminTaskExecutionEventResponse', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -930,47 +938,45 @@ def delete_project_attributes2_with_http_info(self, org, project, body, **kwargs _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def delete_project_domain_attributes(self, project, domain, body, **kwargs): # noqa: E501 - """Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. # noqa: E501 + def create_task_event2(self, event_parent_node_execution_id_execution_id_org, body, **kwargs): # noqa: E501 + """Indicates a :ref:`ref_flyteidl.event.TaskExecutionEvent` has occurred. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.delete_project_domain_attributes(project, domain, body, async_req=True) + >>> thread = api.create_task_event2(event_parent_node_execution_id_execution_id_org, body, async_req=True) >>> result = thread.get() :param async_req bool - :param str project: Unique project id which this set of attributes references. +required (required) - :param str domain: Unique domain id which this set of attributes references. +required (required) - :param AdminProjectDomainAttributesDeleteRequest body: (required) - :return: AdminProjectDomainAttributesDeleteResponse + :param str event_parent_node_execution_id_execution_id_org: Optional, org key applied to the resource. (required) + :param AdminTaskExecutionEventRequest body: (required) + :return: AdminTaskExecutionEventResponse If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.delete_project_domain_attributes_with_http_info(project, domain, body, **kwargs) # noqa: E501 + return self.create_task_event2_with_http_info(event_parent_node_execution_id_execution_id_org, body, **kwargs) # noqa: E501 else: - (data) = self.delete_project_domain_attributes_with_http_info(project, domain, body, **kwargs) # noqa: E501 + (data) = self.create_task_event2_with_http_info(event_parent_node_execution_id_execution_id_org, body, **kwargs) # noqa: E501 return data - def delete_project_domain_attributes_with_http_info(self, project, domain, body, **kwargs): # noqa: E501 - """Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. # noqa: E501 + def create_task_event2_with_http_info(self, event_parent_node_execution_id_execution_id_org, body, **kwargs): # noqa: E501 + """Indicates a :ref:`ref_flyteidl.event.TaskExecutionEvent` has occurred. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.delete_project_domain_attributes_with_http_info(project, domain, body, async_req=True) + >>> thread = api.create_task_event2_with_http_info(event_parent_node_execution_id_execution_id_org, body, async_req=True) >>> result = thread.get() :param async_req bool - :param str project: Unique project id which this set of attributes references. +required (required) - :param str domain: Unique domain id which this set of attributes references. +required (required) - :param AdminProjectDomainAttributesDeleteRequest body: (required) - :return: AdminProjectDomainAttributesDeleteResponse + :param str event_parent_node_execution_id_execution_id_org: Optional, org key applied to the resource. (required) + :param AdminTaskExecutionEventRequest body: (required) + :return: AdminTaskExecutionEventResponse If the method is called asynchronously, returns the request thread. """ - all_params = ['project', 'domain', 'body'] # noqa: E501 + all_params = ['event_parent_node_execution_id_execution_id_org', 'body'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -981,30 +987,24 @@ def delete_project_domain_attributes_with_http_info(self, project, domain, body, if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method delete_project_domain_attributes" % key + " to method create_task_event2" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'project' is set - if ('project' not in params or - params['project'] is None): - raise ValueError("Missing the required parameter `project` when calling `delete_project_domain_attributes`") # noqa: E501 - # verify the required parameter 'domain' is set - if ('domain' not in params or - params['domain'] is None): - raise ValueError("Missing the required parameter `domain` when calling `delete_project_domain_attributes`") # noqa: E501 + # verify the required parameter 'event_parent_node_execution_id_execution_id_org' is set + if ('event_parent_node_execution_id_execution_id_org' not in params or + params['event_parent_node_execution_id_execution_id_org'] is None): + raise ValueError("Missing the required parameter `event_parent_node_execution_id_execution_id_org` when calling `create_task_event2`") # noqa: E501 # verify the required parameter 'body' is set if ('body' not in params or params['body'] is None): - raise ValueError("Missing the required parameter `body` when calling `delete_project_domain_attributes`") # noqa: E501 + raise ValueError("Missing the required parameter `body` when calling `create_task_event2`") # noqa: E501 collection_formats = {} path_params = {} - if 'project' in params: - path_params['project'] = params['project'] # noqa: E501 - if 'domain' in params: - path_params['domain'] = params['domain'] # noqa: E501 + if 'event_parent_node_execution_id_execution_id_org' in params: + path_params['event.parent_node_execution_id.execution_id.org'] = params['event_parent_node_execution_id_execution_id_org'] # noqa: E501 query_params = [] @@ -1028,14 +1028,14 @@ def delete_project_domain_attributes_with_http_info(self, project, domain, body, auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/project_domain_attributes/{project}/{domain}', 'DELETE', + '/api/v1/events/org/{event.parent_node_execution_id.execution_id.org}/tasks', 'POST', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminProjectDomainAttributesDeleteResponse', # noqa: E501 + response_type='AdminTaskExecutionEventResponse', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -1043,49 +1043,43 @@ def delete_project_domain_attributes_with_http_info(self, project, domain, body, _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def delete_project_domain_attributes2(self, org, project, domain, body, **kwargs): # noqa: E501 - """Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. # noqa: E501 + def create_workflow(self, body, **kwargs): # noqa: E501 + """Create and upload a :ref:`ref_flyteidl.admin.Workflow` definition # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.delete_project_domain_attributes2(org, project, domain, body, async_req=True) + >>> thread = api.create_workflow(body, async_req=True) >>> result = thread.get() :param async_req bool - :param str org: Optional, org key applied to the attributes. (required) - :param str project: Unique project id which this set of attributes references. +required (required) - :param str domain: Unique domain id which this set of attributes references. +required (required) - :param AdminProjectDomainAttributesDeleteRequest body: (required) - :return: AdminProjectDomainAttributesDeleteResponse + :param AdminWorkflowCreateRequest body: (required) + :return: AdminWorkflowCreateResponse If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.delete_project_domain_attributes2_with_http_info(org, project, domain, body, **kwargs) # noqa: E501 + return self.create_workflow_with_http_info(body, **kwargs) # noqa: E501 else: - (data) = self.delete_project_domain_attributes2_with_http_info(org, project, domain, body, **kwargs) # noqa: E501 + (data) = self.create_workflow_with_http_info(body, **kwargs) # noqa: E501 return data - def delete_project_domain_attributes2_with_http_info(self, org, project, domain, body, **kwargs): # noqa: E501 - """Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. # noqa: E501 + def create_workflow_with_http_info(self, body, **kwargs): # noqa: E501 + """Create and upload a :ref:`ref_flyteidl.admin.Workflow` definition # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.delete_project_domain_attributes2_with_http_info(org, project, domain, body, async_req=True) + >>> thread = api.create_workflow_with_http_info(body, async_req=True) >>> result = thread.get() :param async_req bool - :param str org: Optional, org key applied to the attributes. (required) - :param str project: Unique project id which this set of attributes references. +required (required) - :param str domain: Unique domain id which this set of attributes references. +required (required) - :param AdminProjectDomainAttributesDeleteRequest body: (required) - :return: AdminProjectDomainAttributesDeleteResponse + :param AdminWorkflowCreateRequest body: (required) + :return: AdminWorkflowCreateResponse If the method is called asynchronously, returns the request thread. """ - all_params = ['org', 'project', 'domain', 'body'] # noqa: E501 + all_params = ['body'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -1096,36 +1090,18 @@ def delete_project_domain_attributes2_with_http_info(self, org, project, domain, if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method delete_project_domain_attributes2" % key + " to method create_workflow" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'org' is set - if ('org' not in params or - params['org'] is None): - raise ValueError("Missing the required parameter `org` when calling `delete_project_domain_attributes2`") # noqa: E501 - # verify the required parameter 'project' is set - if ('project' not in params or - params['project'] is None): - raise ValueError("Missing the required parameter `project` when calling `delete_project_domain_attributes2`") # noqa: E501 - # verify the required parameter 'domain' is set - if ('domain' not in params or - params['domain'] is None): - raise ValueError("Missing the required parameter `domain` when calling `delete_project_domain_attributes2`") # noqa: E501 # verify the required parameter 'body' is set if ('body' not in params or params['body'] is None): - raise ValueError("Missing the required parameter `body` when calling `delete_project_domain_attributes2`") # noqa: E501 + raise ValueError("Missing the required parameter `body` when calling `create_workflow`") # noqa: E501 collection_formats = {} path_params = {} - if 'org' in params: - path_params['org'] = params['org'] # noqa: E501 - if 'project' in params: - path_params['project'] = params['project'] # noqa: E501 - if 'domain' in params: - path_params['domain'] = params['domain'] # noqa: E501 query_params = [] @@ -1149,14 +1125,14 @@ def delete_project_domain_attributes2_with_http_info(self, org, project, domain, auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/project_domain_attributes/org/{org}/{project}/{domain}', 'DELETE', + '/api/v1/workflows', 'POST', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminProjectDomainAttributesDeleteResponse', # noqa: E501 + response_type='AdminWorkflowCreateResponse', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -1164,49 +1140,45 @@ def delete_project_domain_attributes2_with_http_info(self, org, project, domain, _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def delete_workflow_attributes(self, project, domain, workflow, body, **kwargs): # noqa: E501 - """Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. # noqa: E501 + def create_workflow2(self, id_org, body, **kwargs): # noqa: E501 + """Create and upload a :ref:`ref_flyteidl.admin.Workflow` definition # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.delete_workflow_attributes(project, domain, workflow, body, async_req=True) + >>> thread = api.create_workflow2(id_org, body, async_req=True) >>> result = thread.get() :param async_req bool - :param str project: Unique project id which this set of attributes references. +required (required) - :param str domain: Unique domain id which this set of attributes references. +required (required) - :param str workflow: Workflow name which this set of attributes references. +required (required) - :param AdminWorkflowAttributesDeleteRequest body: (required) - :return: AdminWorkflowAttributesDeleteResponse + :param str id_org: Optional, org key applied to the resource. (required) + :param AdminWorkflowCreateRequest body: (required) + :return: AdminWorkflowCreateResponse If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.delete_workflow_attributes_with_http_info(project, domain, workflow, body, **kwargs) # noqa: E501 + return self.create_workflow2_with_http_info(id_org, body, **kwargs) # noqa: E501 else: - (data) = self.delete_workflow_attributes_with_http_info(project, domain, workflow, body, **kwargs) # noqa: E501 + (data) = self.create_workflow2_with_http_info(id_org, body, **kwargs) # noqa: E501 return data - def delete_workflow_attributes_with_http_info(self, project, domain, workflow, body, **kwargs): # noqa: E501 - """Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. # noqa: E501 + def create_workflow2_with_http_info(self, id_org, body, **kwargs): # noqa: E501 + """Create and upload a :ref:`ref_flyteidl.admin.Workflow` definition # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.delete_workflow_attributes_with_http_info(project, domain, workflow, body, async_req=True) + >>> thread = api.create_workflow2_with_http_info(id_org, body, async_req=True) >>> result = thread.get() :param async_req bool - :param str project: Unique project id which this set of attributes references. +required (required) - :param str domain: Unique domain id which this set of attributes references. +required (required) - :param str workflow: Workflow name which this set of attributes references. +required (required) - :param AdminWorkflowAttributesDeleteRequest body: (required) - :return: AdminWorkflowAttributesDeleteResponse + :param str id_org: Optional, org key applied to the resource. (required) + :param AdminWorkflowCreateRequest body: (required) + :return: AdminWorkflowCreateResponse If the method is called asynchronously, returns the request thread. """ - all_params = ['project', 'domain', 'workflow', 'body'] # noqa: E501 + all_params = ['id_org', 'body'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -1217,36 +1189,24 @@ def delete_workflow_attributes_with_http_info(self, project, domain, workflow, b if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method delete_workflow_attributes" % key + " to method create_workflow2" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'project' is set - if ('project' not in params or - params['project'] is None): - raise ValueError("Missing the required parameter `project` when calling `delete_workflow_attributes`") # noqa: E501 - # verify the required parameter 'domain' is set - if ('domain' not in params or - params['domain'] is None): - raise ValueError("Missing the required parameter `domain` when calling `delete_workflow_attributes`") # noqa: E501 - # verify the required parameter 'workflow' is set - if ('workflow' not in params or - params['workflow'] is None): - raise ValueError("Missing the required parameter `workflow` when calling `delete_workflow_attributes`") # noqa: E501 + # verify the required parameter 'id_org' is set + if ('id_org' not in params or + params['id_org'] is None): + raise ValueError("Missing the required parameter `id_org` when calling `create_workflow2`") # noqa: E501 # verify the required parameter 'body' is set if ('body' not in params or params['body'] is None): - raise ValueError("Missing the required parameter `body` when calling `delete_workflow_attributes`") # noqa: E501 + raise ValueError("Missing the required parameter `body` when calling `create_workflow2`") # noqa: E501 collection_formats = {} path_params = {} - if 'project' in params: - path_params['project'] = params['project'] # noqa: E501 - if 'domain' in params: - path_params['domain'] = params['domain'] # noqa: E501 - if 'workflow' in params: - path_params['workflow'] = params['workflow'] # noqa: E501 + if 'id_org' in params: + path_params['id.org'] = params['id_org'] # noqa: E501 query_params = [] @@ -1270,14 +1230,14 @@ def delete_workflow_attributes_with_http_info(self, project, domain, workflow, b auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/workflow_attributes/{project}/{domain}/{workflow}', 'DELETE', + '/api/v1/workflows/org/{id.org}', 'POST', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminWorkflowAttributesDeleteResponse', # noqa: E501 + response_type='AdminWorkflowCreateResponse', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -1285,51 +1245,43 @@ def delete_workflow_attributes_with_http_info(self, project, domain, workflow, b _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def delete_workflow_attributes2(self, org, project, domain, workflow, body, **kwargs): # noqa: E501 - """Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. # noqa: E501 + def create_workflow_event(self, body, **kwargs): # noqa: E501 + """Indicates a :ref:`ref_flyteidl.event.WorkflowExecutionEvent` has occurred. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.delete_workflow_attributes2(org, project, domain, workflow, body, async_req=True) + >>> thread = api.create_workflow_event(body, async_req=True) >>> result = thread.get() :param async_req bool - :param str org: Optional, org key applied to the attributes. (required) - :param str project: Unique project id which this set of attributes references. +required (required) - :param str domain: Unique domain id which this set of attributes references. +required (required) - :param str workflow: Workflow name which this set of attributes references. +required (required) - :param AdminWorkflowAttributesDeleteRequest body: (required) - :return: AdminWorkflowAttributesDeleteResponse + :param AdminWorkflowExecutionEventRequest body: (required) + :return: AdminWorkflowExecutionEventResponse If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.delete_workflow_attributes2_with_http_info(org, project, domain, workflow, body, **kwargs) # noqa: E501 + return self.create_workflow_event_with_http_info(body, **kwargs) # noqa: E501 else: - (data) = self.delete_workflow_attributes2_with_http_info(org, project, domain, workflow, body, **kwargs) # noqa: E501 + (data) = self.create_workflow_event_with_http_info(body, **kwargs) # noqa: E501 return data - def delete_workflow_attributes2_with_http_info(self, org, project, domain, workflow, body, **kwargs): # noqa: E501 - """Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. # noqa: E501 + def create_workflow_event_with_http_info(self, body, **kwargs): # noqa: E501 + """Indicates a :ref:`ref_flyteidl.event.WorkflowExecutionEvent` has occurred. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.delete_workflow_attributes2_with_http_info(org, project, domain, workflow, body, async_req=True) + >>> thread = api.create_workflow_event_with_http_info(body, async_req=True) >>> result = thread.get() :param async_req bool - :param str org: Optional, org key applied to the attributes. (required) - :param str project: Unique project id which this set of attributes references. +required (required) - :param str domain: Unique domain id which this set of attributes references. +required (required) - :param str workflow: Workflow name which this set of attributes references. +required (required) - :param AdminWorkflowAttributesDeleteRequest body: (required) - :return: AdminWorkflowAttributesDeleteResponse + :param AdminWorkflowExecutionEventRequest body: (required) + :return: AdminWorkflowExecutionEventResponse If the method is called asynchronously, returns the request thread. """ - all_params = ['org', 'project', 'domain', 'workflow', 'body'] # noqa: E501 + all_params = ['body'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -1340,42 +1292,18 @@ def delete_workflow_attributes2_with_http_info(self, org, project, domain, workf if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method delete_workflow_attributes2" % key + " to method create_workflow_event" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'org' is set - if ('org' not in params or - params['org'] is None): - raise ValueError("Missing the required parameter `org` when calling `delete_workflow_attributes2`") # noqa: E501 - # verify the required parameter 'project' is set - if ('project' not in params or - params['project'] is None): - raise ValueError("Missing the required parameter `project` when calling `delete_workflow_attributes2`") # noqa: E501 - # verify the required parameter 'domain' is set - if ('domain' not in params or - params['domain'] is None): - raise ValueError("Missing the required parameter `domain` when calling `delete_workflow_attributes2`") # noqa: E501 - # verify the required parameter 'workflow' is set - if ('workflow' not in params or - params['workflow'] is None): - raise ValueError("Missing the required parameter `workflow` when calling `delete_workflow_attributes2`") # noqa: E501 # verify the required parameter 'body' is set if ('body' not in params or params['body'] is None): - raise ValueError("Missing the required parameter `body` when calling `delete_workflow_attributes2`") # noqa: E501 + raise ValueError("Missing the required parameter `body` when calling `create_workflow_event`") # noqa: E501 collection_formats = {} path_params = {} - if 'org' in params: - path_params['org'] = params['org'] # noqa: E501 - if 'project' in params: - path_params['project'] = params['project'] # noqa: E501 - if 'domain' in params: - path_params['domain'] = params['domain'] # noqa: E501 - if 'workflow' in params: - path_params['workflow'] = params['workflow'] # noqa: E501 query_params = [] @@ -1399,14 +1327,14 @@ def delete_workflow_attributes2_with_http_info(self, org, project, domain, workf auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/workflow_attributes/org/{org}/{project}/{domain}/{workflow}', 'DELETE', + '/api/v1/events/workflows', 'POST', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminWorkflowAttributesDeleteResponse', # noqa: E501 + response_type='AdminWorkflowExecutionEventResponse', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -1414,49 +1342,45 @@ def delete_workflow_attributes2_with_http_info(self, org, project, domain, workf _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def get_active_launch_plan(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 - """Fetch the active version of a :ref:`ref_flyteidl.admin.LaunchPlan`. # noqa: E501 + def create_workflow_event2(self, event_execution_id_org, body, **kwargs): # noqa: E501 + """Indicates a :ref:`ref_flyteidl.event.WorkflowExecutionEvent` has occurred. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_active_launch_plan(id_project, id_domain, id_name, async_req=True) + >>> thread = api.create_workflow_event2(event_execution_id_org, body, async_req=True) >>> result = thread.get() :param async_req bool - :param str id_project: Name of the project the resource belongs to. (required) - :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) - :param str id_org: Optional, org key applied to the resource. - :return: AdminLaunchPlan + :param str event_execution_id_org: Optional, org key applied to the resource. (required) + :param AdminWorkflowExecutionEventRequest body: (required) + :return: AdminWorkflowExecutionEventResponse If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.get_active_launch_plan_with_http_info(id_project, id_domain, id_name, **kwargs) # noqa: E501 + return self.create_workflow_event2_with_http_info(event_execution_id_org, body, **kwargs) # noqa: E501 else: - (data) = self.get_active_launch_plan_with_http_info(id_project, id_domain, id_name, **kwargs) # noqa: E501 + (data) = self.create_workflow_event2_with_http_info(event_execution_id_org, body, **kwargs) # noqa: E501 return data - def get_active_launch_plan_with_http_info(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 - """Fetch the active version of a :ref:`ref_flyteidl.admin.LaunchPlan`. # noqa: E501 + def create_workflow_event2_with_http_info(self, event_execution_id_org, body, **kwargs): # noqa: E501 + """Indicates a :ref:`ref_flyteidl.event.WorkflowExecutionEvent` has occurred. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_active_launch_plan_with_http_info(id_project, id_domain, id_name, async_req=True) + >>> thread = api.create_workflow_event2_with_http_info(event_execution_id_org, body, async_req=True) >>> result = thread.get() :param async_req bool - :param str id_project: Name of the project the resource belongs to. (required) - :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) - :param str id_org: Optional, org key applied to the resource. - :return: AdminLaunchPlan + :param str event_execution_id_org: Optional, org key applied to the resource. (required) + :param AdminWorkflowExecutionEventRequest body: (required) + :return: AdminWorkflowExecutionEventResponse If the method is called asynchronously, returns the request thread. """ - all_params = ['id_project', 'id_domain', 'id_name', 'id_org'] # noqa: E501 + all_params = ['event_execution_id_org', 'body'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -1467,36 +1391,26 @@ def get_active_launch_plan_with_http_info(self, id_project, id_domain, id_name, if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method get_active_launch_plan" % key + " to method create_workflow_event2" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'id_project' is set - if ('id_project' not in params or - params['id_project'] is None): - raise ValueError("Missing the required parameter `id_project` when calling `get_active_launch_plan`") # noqa: E501 - # verify the required parameter 'id_domain' is set - if ('id_domain' not in params or - params['id_domain'] is None): - raise ValueError("Missing the required parameter `id_domain` when calling `get_active_launch_plan`") # noqa: E501 - # verify the required parameter 'id_name' is set - if ('id_name' not in params or - params['id_name'] is None): - raise ValueError("Missing the required parameter `id_name` when calling `get_active_launch_plan`") # noqa: E501 + # verify the required parameter 'event_execution_id_org' is set + if ('event_execution_id_org' not in params or + params['event_execution_id_org'] is None): + raise ValueError("Missing the required parameter `event_execution_id_org` when calling `create_workflow_event2`") # noqa: E501 + # verify the required parameter 'body' is set + if ('body' not in params or + params['body'] is None): + raise ValueError("Missing the required parameter `body` when calling `create_workflow_event2`") # noqa: E501 collection_formats = {} path_params = {} - if 'id_project' in params: - path_params['id.project'] = params['id_project'] # noqa: E501 - if 'id_domain' in params: - path_params['id.domain'] = params['id_domain'] # noqa: E501 - if 'id_name' in params: - path_params['id.name'] = params['id_name'] # noqa: E501 + if 'event_execution_id_org' in params: + path_params['event.execution_id.org'] = params['event_execution_id_org'] # noqa: E501 query_params = [] - if 'id_org' in params: - query_params.append(('id.org', params['id_org'])) # noqa: E501 header_params = {} @@ -1504,6 +1418,8 @@ def get_active_launch_plan_with_http_info(self, id_project, id_domain, id_name, local_var_files = {} body_params = None + if 'body' in params: + body_params = params['body'] # HTTP header `Accept` header_params['Accept'] = self.api_client.select_header_accept( ['application/json']) # noqa: E501 @@ -1516,14 +1432,14 @@ def get_active_launch_plan_with_http_info(self, id_project, id_domain, id_name, auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/active_launch_plans/{id.project}/{id.domain}/{id.name}', 'GET', + '/api/v1/events/org/{event.execution_id.org}/workflows', 'POST', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminLaunchPlan', # noqa: E501 + response_type='AdminWorkflowExecutionEventResponse', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -1531,49 +1447,45 @@ def get_active_launch_plan_with_http_info(self, id_project, id_domain, id_name, _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def get_active_launch_plan2(self, id_org, id_project, id_domain, id_name, **kwargs): # noqa: E501 - """Fetch the active version of a :ref:`ref_flyteidl.admin.LaunchPlan`. # noqa: E501 + def delete_project_attributes(self, project, body, **kwargs): # noqa: E501 + """Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_active_launch_plan2(id_org, id_project, id_domain, id_name, async_req=True) + >>> thread = api.delete_project_attributes(project, body, async_req=True) >>> result = thread.get() :param async_req bool - :param str id_org: Optional, org key applied to the resource. (required) - :param str id_project: Name of the project the resource belongs to. (required) - :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) - :return: AdminLaunchPlan + :param str project: Unique project id which this set of attributes references. +required (required) + :param AdminProjectAttributesDeleteRequest body: (required) + :return: AdminProjectAttributesDeleteResponse If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.get_active_launch_plan2_with_http_info(id_org, id_project, id_domain, id_name, **kwargs) # noqa: E501 + return self.delete_project_attributes_with_http_info(project, body, **kwargs) # noqa: E501 else: - (data) = self.get_active_launch_plan2_with_http_info(id_org, id_project, id_domain, id_name, **kwargs) # noqa: E501 + (data) = self.delete_project_attributes_with_http_info(project, body, **kwargs) # noqa: E501 return data - def get_active_launch_plan2_with_http_info(self, id_org, id_project, id_domain, id_name, **kwargs): # noqa: E501 - """Fetch the active version of a :ref:`ref_flyteidl.admin.LaunchPlan`. # noqa: E501 + def delete_project_attributes_with_http_info(self, project, body, **kwargs): # noqa: E501 + """Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_active_launch_plan2_with_http_info(id_org, id_project, id_domain, id_name, async_req=True) + >>> thread = api.delete_project_attributes_with_http_info(project, body, async_req=True) >>> result = thread.get() :param async_req bool - :param str id_org: Optional, org key applied to the resource. (required) - :param str id_project: Name of the project the resource belongs to. (required) - :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) - :return: AdminLaunchPlan + :param str project: Unique project id which this set of attributes references. +required (required) + :param AdminProjectAttributesDeleteRequest body: (required) + :return: AdminProjectAttributesDeleteResponse If the method is called asynchronously, returns the request thread. """ - all_params = ['id_org', 'id_project', 'id_domain', 'id_name'] # noqa: E501 + all_params = ['project', 'body'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -1584,38 +1496,24 @@ def get_active_launch_plan2_with_http_info(self, id_org, id_project, id_domain, if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method get_active_launch_plan2" % key + " to method delete_project_attributes" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'id_org' is set - if ('id_org' not in params or - params['id_org'] is None): - raise ValueError("Missing the required parameter `id_org` when calling `get_active_launch_plan2`") # noqa: E501 - # verify the required parameter 'id_project' is set - if ('id_project' not in params or - params['id_project'] is None): - raise ValueError("Missing the required parameter `id_project` when calling `get_active_launch_plan2`") # noqa: E501 - # verify the required parameter 'id_domain' is set - if ('id_domain' not in params or - params['id_domain'] is None): - raise ValueError("Missing the required parameter `id_domain` when calling `get_active_launch_plan2`") # noqa: E501 - # verify the required parameter 'id_name' is set - if ('id_name' not in params or - params['id_name'] is None): - raise ValueError("Missing the required parameter `id_name` when calling `get_active_launch_plan2`") # noqa: E501 + # verify the required parameter 'project' is set + if ('project' not in params or + params['project'] is None): + raise ValueError("Missing the required parameter `project` when calling `delete_project_attributes`") # noqa: E501 + # verify the required parameter 'body' is set + if ('body' not in params or + params['body'] is None): + raise ValueError("Missing the required parameter `body` when calling `delete_project_attributes`") # noqa: E501 collection_formats = {} path_params = {} - if 'id_org' in params: - path_params['id.org'] = params['id_org'] # noqa: E501 - if 'id_project' in params: - path_params['id.project'] = params['id_project'] # noqa: E501 - if 'id_domain' in params: - path_params['id.domain'] = params['id_domain'] # noqa: E501 - if 'id_name' in params: - path_params['id.name'] = params['id_name'] # noqa: E501 + if 'project' in params: + path_params['project'] = params['project'] # noqa: E501 query_params = [] @@ -1625,6 +1523,8 @@ def get_active_launch_plan2_with_http_info(self, id_org, id_project, id_domain, local_var_files = {} body_params = None + if 'body' in params: + body_params = params['body'] # HTTP header `Accept` header_params['Accept'] = self.api_client.select_header_accept( ['application/json']) # noqa: E501 @@ -1637,14 +1537,14 @@ def get_active_launch_plan2_with_http_info(self, id_org, id_project, id_domain, auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/active_launch_plans/org/{id.org}/{id.project}/{id.domain}/{id.name}', 'GET', + '/api/v1/project_attributes/{project}', 'DELETE', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminLaunchPlan', # noqa: E501 + response_type='AdminProjectAttributesDeleteResponse', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -1652,53 +1552,47 @@ def get_active_launch_plan2_with_http_info(self, id_org, id_project, id_domain, _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def get_description_entity(self, id_resource_type, id_project, id_domain, id_name, id_version, **kwargs): # noqa: E501 - """Fetch a :ref:`ref_flyteidl.admin.DescriptionEntity` object. # noqa: E501 + def delete_project_attributes2(self, org, project, body, **kwargs): # noqa: E501 + """Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_description_entity(id_resource_type, id_project, id_domain, id_name, id_version, async_req=True) + >>> thread = api.delete_project_attributes2(org, project, body, async_req=True) >>> result = thread.get() :param async_req bool - :param str id_resource_type: Identifies the specific type of resource that this identifier corresponds to. (required) - :param str id_project: Name of the project the resource belongs to. (required) - :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_name: User provided value for the resource. (required) - :param str id_version: Specific version of the resource. (required) - :param str id_org: Optional, org key applied to the resource. - :return: AdminDescriptionEntity + :param str org: Optional, org key applied to the project. (required) + :param str project: Unique project id which this set of attributes references. +required (required) + :param AdminProjectAttributesDeleteRequest body: (required) + :return: AdminProjectAttributesDeleteResponse If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.get_description_entity_with_http_info(id_resource_type, id_project, id_domain, id_name, id_version, **kwargs) # noqa: E501 + return self.delete_project_attributes2_with_http_info(org, project, body, **kwargs) # noqa: E501 else: - (data) = self.get_description_entity_with_http_info(id_resource_type, id_project, id_domain, id_name, id_version, **kwargs) # noqa: E501 + (data) = self.delete_project_attributes2_with_http_info(org, project, body, **kwargs) # noqa: E501 return data - def get_description_entity_with_http_info(self, id_resource_type, id_project, id_domain, id_name, id_version, **kwargs): # noqa: E501 - """Fetch a :ref:`ref_flyteidl.admin.DescriptionEntity` object. # noqa: E501 + def delete_project_attributes2_with_http_info(self, org, project, body, **kwargs): # noqa: E501 + """Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_description_entity_with_http_info(id_resource_type, id_project, id_domain, id_name, id_version, async_req=True) + >>> thread = api.delete_project_attributes2_with_http_info(org, project, body, async_req=True) >>> result = thread.get() :param async_req bool - :param str id_resource_type: Identifies the specific type of resource that this identifier corresponds to. (required) - :param str id_project: Name of the project the resource belongs to. (required) - :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_name: User provided value for the resource. (required) - :param str id_version: Specific version of the resource. (required) - :param str id_org: Optional, org key applied to the resource. - :return: AdminDescriptionEntity + :param str org: Optional, org key applied to the project. (required) + :param str project: Unique project id which this set of attributes references. +required (required) + :param AdminProjectAttributesDeleteRequest body: (required) + :return: AdminProjectAttributesDeleteResponse If the method is called asynchronously, returns the request thread. """ - all_params = ['id_resource_type', 'id_project', 'id_domain', 'id_name', 'id_version', 'id_org'] # noqa: E501 + all_params = ['org', 'project', 'body'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -1709,48 +1603,32 @@ def get_description_entity_with_http_info(self, id_resource_type, id_project, id if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method get_description_entity" % key + " to method delete_project_attributes2" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'id_resource_type' is set - if ('id_resource_type' not in params or - params['id_resource_type'] is None): - raise ValueError("Missing the required parameter `id_resource_type` when calling `get_description_entity`") # noqa: E501 - # verify the required parameter 'id_project' is set - if ('id_project' not in params or - params['id_project'] is None): - raise ValueError("Missing the required parameter `id_project` when calling `get_description_entity`") # noqa: E501 - # verify the required parameter 'id_domain' is set - if ('id_domain' not in params or - params['id_domain'] is None): - raise ValueError("Missing the required parameter `id_domain` when calling `get_description_entity`") # noqa: E501 - # verify the required parameter 'id_name' is set - if ('id_name' not in params or - params['id_name'] is None): - raise ValueError("Missing the required parameter `id_name` when calling `get_description_entity`") # noqa: E501 - # verify the required parameter 'id_version' is set - if ('id_version' not in params or - params['id_version'] is None): - raise ValueError("Missing the required parameter `id_version` when calling `get_description_entity`") # noqa: E501 + # verify the required parameter 'org' is set + if ('org' not in params or + params['org'] is None): + raise ValueError("Missing the required parameter `org` when calling `delete_project_attributes2`") # noqa: E501 + # verify the required parameter 'project' is set + if ('project' not in params or + params['project'] is None): + raise ValueError("Missing the required parameter `project` when calling `delete_project_attributes2`") # noqa: E501 + # verify the required parameter 'body' is set + if ('body' not in params or + params['body'] is None): + raise ValueError("Missing the required parameter `body` when calling `delete_project_attributes2`") # noqa: E501 collection_formats = {} path_params = {} - if 'id_resource_type' in params: - path_params['id.resource_type'] = params['id_resource_type'] # noqa: E501 - if 'id_project' in params: - path_params['id.project'] = params['id_project'] # noqa: E501 - if 'id_domain' in params: - path_params['id.domain'] = params['id_domain'] # noqa: E501 - if 'id_name' in params: - path_params['id.name'] = params['id_name'] # noqa: E501 - if 'id_version' in params: - path_params['id.version'] = params['id_version'] # noqa: E501 + if 'org' in params: + path_params['org'] = params['org'] # noqa: E501 + if 'project' in params: + path_params['project'] = params['project'] # noqa: E501 query_params = [] - if 'id_org' in params: - query_params.append(('id.org', params['id_org'])) # noqa: E501 header_params = {} @@ -1758,6 +1636,8 @@ def get_description_entity_with_http_info(self, id_resource_type, id_project, id local_var_files = {} body_params = None + if 'body' in params: + body_params = params['body'] # HTTP header `Accept` header_params['Accept'] = self.api_client.select_header_accept( ['application/json']) # noqa: E501 @@ -1770,14 +1650,14 @@ def get_description_entity_with_http_info(self, id_resource_type, id_project, id auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/description_entities/{id.resource_type}/{id.project}/{id.domain}/{id.name}/{id.version}', 'GET', + '/api/v1/project_domain_attributes/org/{org}/{project}', 'DELETE', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminDescriptionEntity', # noqa: E501 + response_type='AdminProjectAttributesDeleteResponse', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -1785,53 +1665,47 @@ def get_description_entity_with_http_info(self, id_resource_type, id_project, id _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def get_description_entity2(self, id_org, id_resource_type, id_project, id_domain, id_name, id_version, **kwargs): # noqa: E501 - """Fetch a :ref:`ref_flyteidl.admin.DescriptionEntity` object. # noqa: E501 + def delete_project_domain_attributes(self, project, domain, body, **kwargs): # noqa: E501 + """Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_description_entity2(id_org, id_resource_type, id_project, id_domain, id_name, id_version, async_req=True) + >>> thread = api.delete_project_domain_attributes(project, domain, body, async_req=True) >>> result = thread.get() :param async_req bool - :param str id_org: Optional, org key applied to the resource. (required) - :param str id_resource_type: Identifies the specific type of resource that this identifier corresponds to. (required) - :param str id_project: Name of the project the resource belongs to. (required) - :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_name: User provided value for the resource. (required) - :param str id_version: Specific version of the resource. (required) - :return: AdminDescriptionEntity + :param str project: Unique project id which this set of attributes references. +required (required) + :param str domain: Unique domain id which this set of attributes references. +required (required) + :param AdminProjectDomainAttributesDeleteRequest body: (required) + :return: AdminProjectDomainAttributesDeleteResponse If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.get_description_entity2_with_http_info(id_org, id_resource_type, id_project, id_domain, id_name, id_version, **kwargs) # noqa: E501 + return self.delete_project_domain_attributes_with_http_info(project, domain, body, **kwargs) # noqa: E501 else: - (data) = self.get_description_entity2_with_http_info(id_org, id_resource_type, id_project, id_domain, id_name, id_version, **kwargs) # noqa: E501 + (data) = self.delete_project_domain_attributes_with_http_info(project, domain, body, **kwargs) # noqa: E501 return data - def get_description_entity2_with_http_info(self, id_org, id_resource_type, id_project, id_domain, id_name, id_version, **kwargs): # noqa: E501 - """Fetch a :ref:`ref_flyteidl.admin.DescriptionEntity` object. # noqa: E501 + def delete_project_domain_attributes_with_http_info(self, project, domain, body, **kwargs): # noqa: E501 + """Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_description_entity2_with_http_info(id_org, id_resource_type, id_project, id_domain, id_name, id_version, async_req=True) + >>> thread = api.delete_project_domain_attributes_with_http_info(project, domain, body, async_req=True) >>> result = thread.get() :param async_req bool - :param str id_org: Optional, org key applied to the resource. (required) - :param str id_resource_type: Identifies the specific type of resource that this identifier corresponds to. (required) - :param str id_project: Name of the project the resource belongs to. (required) - :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_name: User provided value for the resource. (required) - :param str id_version: Specific version of the resource. (required) - :return: AdminDescriptionEntity + :param str project: Unique project id which this set of attributes references. +required (required) + :param str domain: Unique domain id which this set of attributes references. +required (required) + :param AdminProjectDomainAttributesDeleteRequest body: (required) + :return: AdminProjectDomainAttributesDeleteResponse If the method is called asynchronously, returns the request thread. """ - all_params = ['id_org', 'id_resource_type', 'id_project', 'id_domain', 'id_name', 'id_version'] # noqa: E501 + all_params = ['project', 'domain', 'body'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -1842,50 +1716,30 @@ def get_description_entity2_with_http_info(self, id_org, id_resource_type, id_pr if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method get_description_entity2" % key + " to method delete_project_domain_attributes" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'id_org' is set - if ('id_org' not in params or - params['id_org'] is None): - raise ValueError("Missing the required parameter `id_org` when calling `get_description_entity2`") # noqa: E501 - # verify the required parameter 'id_resource_type' is set - if ('id_resource_type' not in params or - params['id_resource_type'] is None): - raise ValueError("Missing the required parameter `id_resource_type` when calling `get_description_entity2`") # noqa: E501 - # verify the required parameter 'id_project' is set - if ('id_project' not in params or - params['id_project'] is None): - raise ValueError("Missing the required parameter `id_project` when calling `get_description_entity2`") # noqa: E501 - # verify the required parameter 'id_domain' is set - if ('id_domain' not in params or - params['id_domain'] is None): - raise ValueError("Missing the required parameter `id_domain` when calling `get_description_entity2`") # noqa: E501 - # verify the required parameter 'id_name' is set - if ('id_name' not in params or - params['id_name'] is None): - raise ValueError("Missing the required parameter `id_name` when calling `get_description_entity2`") # noqa: E501 - # verify the required parameter 'id_version' is set - if ('id_version' not in params or - params['id_version'] is None): - raise ValueError("Missing the required parameter `id_version` when calling `get_description_entity2`") # noqa: E501 + # verify the required parameter 'project' is set + if ('project' not in params or + params['project'] is None): + raise ValueError("Missing the required parameter `project` when calling `delete_project_domain_attributes`") # noqa: E501 + # verify the required parameter 'domain' is set + if ('domain' not in params or + params['domain'] is None): + raise ValueError("Missing the required parameter `domain` when calling `delete_project_domain_attributes`") # noqa: E501 + # verify the required parameter 'body' is set + if ('body' not in params or + params['body'] is None): + raise ValueError("Missing the required parameter `body` when calling `delete_project_domain_attributes`") # noqa: E501 collection_formats = {} path_params = {} - if 'id_org' in params: - path_params['id.org'] = params['id_org'] # noqa: E501 - if 'id_resource_type' in params: - path_params['id.resource_type'] = params['id_resource_type'] # noqa: E501 - if 'id_project' in params: - path_params['id.project'] = params['id_project'] # noqa: E501 - if 'id_domain' in params: - path_params['id.domain'] = params['id_domain'] # noqa: E501 - if 'id_name' in params: - path_params['id.name'] = params['id_name'] # noqa: E501 - if 'id_version' in params: - path_params['id.version'] = params['id_version'] # noqa: E501 + if 'project' in params: + path_params['project'] = params['project'] # noqa: E501 + if 'domain' in params: + path_params['domain'] = params['domain'] # noqa: E501 query_params = [] @@ -1895,6 +1749,8 @@ def get_description_entity2_with_http_info(self, id_org, id_resource_type, id_pr local_var_files = {} body_params = None + if 'body' in params: + body_params = params['body'] # HTTP header `Accept` header_params['Accept'] = self.api_client.select_header_accept( ['application/json']) # noqa: E501 @@ -1907,14 +1763,14 @@ def get_description_entity2_with_http_info(self, id_org, id_resource_type, id_pr auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/description_entities/org/{id.org}/{id.resource_type}/{id.project}/{id.domain}/{id.name}/{id.version}', 'GET', + '/api/v1/project_domain_attributes/{project}/{domain}', 'DELETE', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminDescriptionEntity', # noqa: E501 + response_type='AdminProjectDomainAttributesDeleteResponse', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -1922,49 +1778,49 @@ def get_description_entity2_with_http_info(self, id_org, id_resource_type, id_pr _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def get_execution(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 - """Fetches a :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 + def delete_project_domain_attributes2(self, org, project, domain, body, **kwargs): # noqa: E501 + """Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_execution(id_project, id_domain, id_name, async_req=True) + >>> thread = api.delete_project_domain_attributes2(org, project, domain, body, async_req=True) >>> result = thread.get() :param async_req bool - :param str id_project: Name of the project the resource belongs to. (required) - :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_name: User or system provided value for the resource. (required) - :param str id_org: Optional, org key applied to the resource. - :return: AdminExecution + :param str org: Optional, org key applied to the attributes. (required) + :param str project: Unique project id which this set of attributes references. +required (required) + :param str domain: Unique domain id which this set of attributes references. +required (required) + :param AdminProjectDomainAttributesDeleteRequest body: (required) + :return: AdminProjectDomainAttributesDeleteResponse If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.get_execution_with_http_info(id_project, id_domain, id_name, **kwargs) # noqa: E501 + return self.delete_project_domain_attributes2_with_http_info(org, project, domain, body, **kwargs) # noqa: E501 else: - (data) = self.get_execution_with_http_info(id_project, id_domain, id_name, **kwargs) # noqa: E501 + (data) = self.delete_project_domain_attributes2_with_http_info(org, project, domain, body, **kwargs) # noqa: E501 return data - def get_execution_with_http_info(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 - """Fetches a :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 + def delete_project_domain_attributes2_with_http_info(self, org, project, domain, body, **kwargs): # noqa: E501 + """Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_execution_with_http_info(id_project, id_domain, id_name, async_req=True) + >>> thread = api.delete_project_domain_attributes2_with_http_info(org, project, domain, body, async_req=True) >>> result = thread.get() :param async_req bool - :param str id_project: Name of the project the resource belongs to. (required) - :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_name: User or system provided value for the resource. (required) - :param str id_org: Optional, org key applied to the resource. - :return: AdminExecution + :param str org: Optional, org key applied to the attributes. (required) + :param str project: Unique project id which this set of attributes references. +required (required) + :param str domain: Unique domain id which this set of attributes references. +required (required) + :param AdminProjectDomainAttributesDeleteRequest body: (required) + :return: AdminProjectDomainAttributesDeleteResponse If the method is called asynchronously, returns the request thread. """ - all_params = ['id_project', 'id_domain', 'id_name', 'id_org'] # noqa: E501 + all_params = ['org', 'project', 'domain', 'body'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -1975,36 +1831,38 @@ def get_execution_with_http_info(self, id_project, id_domain, id_name, **kwargs) if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method get_execution" % key + " to method delete_project_domain_attributes2" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'id_project' is set - if ('id_project' not in params or - params['id_project'] is None): - raise ValueError("Missing the required parameter `id_project` when calling `get_execution`") # noqa: E501 - # verify the required parameter 'id_domain' is set - if ('id_domain' not in params or - params['id_domain'] is None): - raise ValueError("Missing the required parameter `id_domain` when calling `get_execution`") # noqa: E501 - # verify the required parameter 'id_name' is set - if ('id_name' not in params or - params['id_name'] is None): - raise ValueError("Missing the required parameter `id_name` when calling `get_execution`") # noqa: E501 + # verify the required parameter 'org' is set + if ('org' not in params or + params['org'] is None): + raise ValueError("Missing the required parameter `org` when calling `delete_project_domain_attributes2`") # noqa: E501 + # verify the required parameter 'project' is set + if ('project' not in params or + params['project'] is None): + raise ValueError("Missing the required parameter `project` when calling `delete_project_domain_attributes2`") # noqa: E501 + # verify the required parameter 'domain' is set + if ('domain' not in params or + params['domain'] is None): + raise ValueError("Missing the required parameter `domain` when calling `delete_project_domain_attributes2`") # noqa: E501 + # verify the required parameter 'body' is set + if ('body' not in params or + params['body'] is None): + raise ValueError("Missing the required parameter `body` when calling `delete_project_domain_attributes2`") # noqa: E501 collection_formats = {} path_params = {} - if 'id_project' in params: - path_params['id.project'] = params['id_project'] # noqa: E501 - if 'id_domain' in params: - path_params['id.domain'] = params['id_domain'] # noqa: E501 - if 'id_name' in params: - path_params['id.name'] = params['id_name'] # noqa: E501 + if 'org' in params: + path_params['org'] = params['org'] # noqa: E501 + if 'project' in params: + path_params['project'] = params['project'] # noqa: E501 + if 'domain' in params: + path_params['domain'] = params['domain'] # noqa: E501 query_params = [] - if 'id_org' in params: - query_params.append(('id.org', params['id_org'])) # noqa: E501 header_params = {} @@ -2012,6 +1870,8 @@ def get_execution_with_http_info(self, id_project, id_domain, id_name, **kwargs) local_var_files = {} body_params = None + if 'body' in params: + body_params = params['body'] # HTTP header `Accept` header_params['Accept'] = self.api_client.select_header_accept( ['application/json']) # noqa: E501 @@ -2024,14 +1884,14 @@ def get_execution_with_http_info(self, id_project, id_domain, id_name, **kwargs) auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/executions/{id.project}/{id.domain}/{id.name}', 'GET', + '/api/v1/project_domain_attributes/org/{org}/{project}/{domain}', 'DELETE', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminExecution', # noqa: E501 + response_type='AdminProjectDomainAttributesDeleteResponse', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -2039,49 +1899,49 @@ def get_execution_with_http_info(self, id_project, id_domain, id_name, **kwargs) _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def get_execution2(self, id_org, id_project, id_domain, id_name, **kwargs): # noqa: E501 - """Fetches a :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 + def delete_workflow_attributes(self, project, domain, workflow, body, **kwargs): # noqa: E501 + """Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_execution2(id_org, id_project, id_domain, id_name, async_req=True) + >>> thread = api.delete_workflow_attributes(project, domain, workflow, body, async_req=True) >>> result = thread.get() :param async_req bool - :param str id_org: Optional, org key applied to the resource. (required) - :param str id_project: Name of the project the resource belongs to. (required) - :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_name: User or system provided value for the resource. (required) - :return: AdminExecution + :param str project: Unique project id which this set of attributes references. +required (required) + :param str domain: Unique domain id which this set of attributes references. +required (required) + :param str workflow: Workflow name which this set of attributes references. +required (required) + :param AdminWorkflowAttributesDeleteRequest body: (required) + :return: AdminWorkflowAttributesDeleteResponse If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.get_execution2_with_http_info(id_org, id_project, id_domain, id_name, **kwargs) # noqa: E501 + return self.delete_workflow_attributes_with_http_info(project, domain, workflow, body, **kwargs) # noqa: E501 else: - (data) = self.get_execution2_with_http_info(id_org, id_project, id_domain, id_name, **kwargs) # noqa: E501 + (data) = self.delete_workflow_attributes_with_http_info(project, domain, workflow, body, **kwargs) # noqa: E501 return data - def get_execution2_with_http_info(self, id_org, id_project, id_domain, id_name, **kwargs): # noqa: E501 - """Fetches a :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 + def delete_workflow_attributes_with_http_info(self, project, domain, workflow, body, **kwargs): # noqa: E501 + """Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_execution2_with_http_info(id_org, id_project, id_domain, id_name, async_req=True) + >>> thread = api.delete_workflow_attributes_with_http_info(project, domain, workflow, body, async_req=True) >>> result = thread.get() :param async_req bool - :param str id_org: Optional, org key applied to the resource. (required) - :param str id_project: Name of the project the resource belongs to. (required) - :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_name: User or system provided value for the resource. (required) - :return: AdminExecution + :param str project: Unique project id which this set of attributes references. +required (required) + :param str domain: Unique domain id which this set of attributes references. +required (required) + :param str workflow: Workflow name which this set of attributes references. +required (required) + :param AdminWorkflowAttributesDeleteRequest body: (required) + :return: AdminWorkflowAttributesDeleteResponse If the method is called asynchronously, returns the request thread. """ - all_params = ['id_org', 'id_project', 'id_domain', 'id_name'] # noqa: E501 + all_params = ['project', 'domain', 'workflow', 'body'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -2092,38 +1952,36 @@ def get_execution2_with_http_info(self, id_org, id_project, id_domain, id_name, if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method get_execution2" % key + " to method delete_workflow_attributes" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'id_org' is set - if ('id_org' not in params or - params['id_org'] is None): - raise ValueError("Missing the required parameter `id_org` when calling `get_execution2`") # noqa: E501 - # verify the required parameter 'id_project' is set - if ('id_project' not in params or - params['id_project'] is None): - raise ValueError("Missing the required parameter `id_project` when calling `get_execution2`") # noqa: E501 - # verify the required parameter 'id_domain' is set - if ('id_domain' not in params or - params['id_domain'] is None): - raise ValueError("Missing the required parameter `id_domain` when calling `get_execution2`") # noqa: E501 - # verify the required parameter 'id_name' is set - if ('id_name' not in params or - params['id_name'] is None): - raise ValueError("Missing the required parameter `id_name` when calling `get_execution2`") # noqa: E501 + # verify the required parameter 'project' is set + if ('project' not in params or + params['project'] is None): + raise ValueError("Missing the required parameter `project` when calling `delete_workflow_attributes`") # noqa: E501 + # verify the required parameter 'domain' is set + if ('domain' not in params or + params['domain'] is None): + raise ValueError("Missing the required parameter `domain` when calling `delete_workflow_attributes`") # noqa: E501 + # verify the required parameter 'workflow' is set + if ('workflow' not in params or + params['workflow'] is None): + raise ValueError("Missing the required parameter `workflow` when calling `delete_workflow_attributes`") # noqa: E501 + # verify the required parameter 'body' is set + if ('body' not in params or + params['body'] is None): + raise ValueError("Missing the required parameter `body` when calling `delete_workflow_attributes`") # noqa: E501 collection_formats = {} path_params = {} - if 'id_org' in params: - path_params['id.org'] = params['id_org'] # noqa: E501 - if 'id_project' in params: - path_params['id.project'] = params['id_project'] # noqa: E501 - if 'id_domain' in params: - path_params['id.domain'] = params['id_domain'] # noqa: E501 - if 'id_name' in params: - path_params['id.name'] = params['id_name'] # noqa: E501 + if 'project' in params: + path_params['project'] = params['project'] # noqa: E501 + if 'domain' in params: + path_params['domain'] = params['domain'] # noqa: E501 + if 'workflow' in params: + path_params['workflow'] = params['workflow'] # noqa: E501 query_params = [] @@ -2133,6 +1991,8 @@ def get_execution2_with_http_info(self, id_org, id_project, id_domain, id_name, local_var_files = {} body_params = None + if 'body' in params: + body_params = params['body'] # HTTP header `Accept` header_params['Accept'] = self.api_client.select_header_accept( ['application/json']) # noqa: E501 @@ -2145,14 +2005,14 @@ def get_execution2_with_http_info(self, id_org, id_project, id_domain, id_name, auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}', 'GET', + '/api/v1/workflow_attributes/{project}/{domain}/{workflow}', 'DELETE', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminExecution', # noqa: E501 + response_type='AdminWorkflowAttributesDeleteResponse', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -2160,49 +2020,51 @@ def get_execution2_with_http_info(self, id_org, id_project, id_domain, id_name, _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def get_execution_data(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 - """Fetches input and output data for a :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 + def delete_workflow_attributes2(self, org, project, domain, workflow, body, **kwargs): # noqa: E501 + """Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_execution_data(id_project, id_domain, id_name, async_req=True) + >>> thread = api.delete_workflow_attributes2(org, project, domain, workflow, body, async_req=True) >>> result = thread.get() :param async_req bool - :param str id_project: Name of the project the resource belongs to. (required) - :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_name: User or system provided value for the resource. (required) - :param str id_org: Optional, org key applied to the resource. - :return: AdminWorkflowExecutionGetDataResponse + :param str org: Optional, org key applied to the attributes. (required) + :param str project: Unique project id which this set of attributes references. +required (required) + :param str domain: Unique domain id which this set of attributes references. +required (required) + :param str workflow: Workflow name which this set of attributes references. +required (required) + :param AdminWorkflowAttributesDeleteRequest body: (required) + :return: AdminWorkflowAttributesDeleteResponse If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.get_execution_data_with_http_info(id_project, id_domain, id_name, **kwargs) # noqa: E501 + return self.delete_workflow_attributes2_with_http_info(org, project, domain, workflow, body, **kwargs) # noqa: E501 else: - (data) = self.get_execution_data_with_http_info(id_project, id_domain, id_name, **kwargs) # noqa: E501 + (data) = self.delete_workflow_attributes2_with_http_info(org, project, domain, workflow, body, **kwargs) # noqa: E501 return data - def get_execution_data_with_http_info(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 - """Fetches input and output data for a :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 + def delete_workflow_attributes2_with_http_info(self, org, project, domain, workflow, body, **kwargs): # noqa: E501 + """Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_execution_data_with_http_info(id_project, id_domain, id_name, async_req=True) + >>> thread = api.delete_workflow_attributes2_with_http_info(org, project, domain, workflow, body, async_req=True) >>> result = thread.get() :param async_req bool - :param str id_project: Name of the project the resource belongs to. (required) - :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_name: User or system provided value for the resource. (required) - :param str id_org: Optional, org key applied to the resource. - :return: AdminWorkflowExecutionGetDataResponse + :param str org: Optional, org key applied to the attributes. (required) + :param str project: Unique project id which this set of attributes references. +required (required) + :param str domain: Unique domain id which this set of attributes references. +required (required) + :param str workflow: Workflow name which this set of attributes references. +required (required) + :param AdminWorkflowAttributesDeleteRequest body: (required) + :return: AdminWorkflowAttributesDeleteResponse If the method is called asynchronously, returns the request thread. """ - all_params = ['id_project', 'id_domain', 'id_name', 'id_org'] # noqa: E501 + all_params = ['org', 'project', 'domain', 'workflow', 'body'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -2213,36 +2075,44 @@ def get_execution_data_with_http_info(self, id_project, id_domain, id_name, **kw if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method get_execution_data" % key + " to method delete_workflow_attributes2" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'id_project' is set - if ('id_project' not in params or - params['id_project'] is None): - raise ValueError("Missing the required parameter `id_project` when calling `get_execution_data`") # noqa: E501 - # verify the required parameter 'id_domain' is set - if ('id_domain' not in params or - params['id_domain'] is None): - raise ValueError("Missing the required parameter `id_domain` when calling `get_execution_data`") # noqa: E501 - # verify the required parameter 'id_name' is set - if ('id_name' not in params or - params['id_name'] is None): - raise ValueError("Missing the required parameter `id_name` when calling `get_execution_data`") # noqa: E501 + # verify the required parameter 'org' is set + if ('org' not in params or + params['org'] is None): + raise ValueError("Missing the required parameter `org` when calling `delete_workflow_attributes2`") # noqa: E501 + # verify the required parameter 'project' is set + if ('project' not in params or + params['project'] is None): + raise ValueError("Missing the required parameter `project` when calling `delete_workflow_attributes2`") # noqa: E501 + # verify the required parameter 'domain' is set + if ('domain' not in params or + params['domain'] is None): + raise ValueError("Missing the required parameter `domain` when calling `delete_workflow_attributes2`") # noqa: E501 + # verify the required parameter 'workflow' is set + if ('workflow' not in params or + params['workflow'] is None): + raise ValueError("Missing the required parameter `workflow` when calling `delete_workflow_attributes2`") # noqa: E501 + # verify the required parameter 'body' is set + if ('body' not in params or + params['body'] is None): + raise ValueError("Missing the required parameter `body` when calling `delete_workflow_attributes2`") # noqa: E501 collection_formats = {} path_params = {} - if 'id_project' in params: - path_params['id.project'] = params['id_project'] # noqa: E501 - if 'id_domain' in params: - path_params['id.domain'] = params['id_domain'] # noqa: E501 - if 'id_name' in params: - path_params['id.name'] = params['id_name'] # noqa: E501 + if 'org' in params: + path_params['org'] = params['org'] # noqa: E501 + if 'project' in params: + path_params['project'] = params['project'] # noqa: E501 + if 'domain' in params: + path_params['domain'] = params['domain'] # noqa: E501 + if 'workflow' in params: + path_params['workflow'] = params['workflow'] # noqa: E501 query_params = [] - if 'id_org' in params: - query_params.append(('id.org', params['id_org'])) # noqa: E501 header_params = {} @@ -2250,6 +2120,8 @@ def get_execution_data_with_http_info(self, id_project, id_domain, id_name, **kw local_var_files = {} body_params = None + if 'body' in params: + body_params = params['body'] # HTTP header `Accept` header_params['Accept'] = self.api_client.select_header_accept( ['application/json']) # noqa: E501 @@ -2262,14 +2134,14 @@ def get_execution_data_with_http_info(self, id_project, id_domain, id_name, **kw auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/data/executions/{id.project}/{id.domain}/{id.name}', 'GET', + '/api/v1/workflow_attributes/org/{org}/{project}/{domain}/{workflow}', 'DELETE', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminWorkflowExecutionGetDataResponse', # noqa: E501 + response_type='AdminWorkflowAttributesDeleteResponse', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -2277,49 +2149,49 @@ def get_execution_data_with_http_info(self, id_project, id_domain, id_name, **kw _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def get_execution_data2(self, id_org, id_project, id_domain, id_name, **kwargs): # noqa: E501 - """Fetches input and output data for a :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 + def get_active_launch_plan(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 + """Fetch the active version of a :ref:`ref_flyteidl.admin.LaunchPlan`. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_execution_data2(id_org, id_project, id_domain, id_name, async_req=True) + >>> thread = api.get_active_launch_plan(id_project, id_domain, id_name, async_req=True) >>> result = thread.get() :param async_req bool - :param str id_org: Optional, org key applied to the resource. (required) :param str id_project: Name of the project the resource belongs to. (required) :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_name: User or system provided value for the resource. (required) - :return: AdminWorkflowExecutionGetDataResponse + :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) + :param str id_org: Optional, org key applied to the resource. + :return: AdminLaunchPlan If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.get_execution_data2_with_http_info(id_org, id_project, id_domain, id_name, **kwargs) # noqa: E501 + return self.get_active_launch_plan_with_http_info(id_project, id_domain, id_name, **kwargs) # noqa: E501 else: - (data) = self.get_execution_data2_with_http_info(id_org, id_project, id_domain, id_name, **kwargs) # noqa: E501 + (data) = self.get_active_launch_plan_with_http_info(id_project, id_domain, id_name, **kwargs) # noqa: E501 return data - def get_execution_data2_with_http_info(self, id_org, id_project, id_domain, id_name, **kwargs): # noqa: E501 - """Fetches input and output data for a :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 + def get_active_launch_plan_with_http_info(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 + """Fetch the active version of a :ref:`ref_flyteidl.admin.LaunchPlan`. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_execution_data2_with_http_info(id_org, id_project, id_domain, id_name, async_req=True) + >>> thread = api.get_active_launch_plan_with_http_info(id_project, id_domain, id_name, async_req=True) >>> result = thread.get() :param async_req bool - :param str id_org: Optional, org key applied to the resource. (required) :param str id_project: Name of the project the resource belongs to. (required) :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_name: User or system provided value for the resource. (required) - :return: AdminWorkflowExecutionGetDataResponse + :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) + :param str id_org: Optional, org key applied to the resource. + :return: AdminLaunchPlan If the method is called asynchronously, returns the request thread. """ - all_params = ['id_org', 'id_project', 'id_domain', 'id_name'] # noqa: E501 + all_params = ['id_project', 'id_domain', 'id_name', 'id_org'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -2330,32 +2202,26 @@ def get_execution_data2_with_http_info(self, id_org, id_project, id_domain, id_n if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method get_execution_data2" % key + " to method get_active_launch_plan" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'id_org' is set - if ('id_org' not in params or - params['id_org'] is None): - raise ValueError("Missing the required parameter `id_org` when calling `get_execution_data2`") # noqa: E501 # verify the required parameter 'id_project' is set if ('id_project' not in params or params['id_project'] is None): - raise ValueError("Missing the required parameter `id_project` when calling `get_execution_data2`") # noqa: E501 + raise ValueError("Missing the required parameter `id_project` when calling `get_active_launch_plan`") # noqa: E501 # verify the required parameter 'id_domain' is set if ('id_domain' not in params or params['id_domain'] is None): - raise ValueError("Missing the required parameter `id_domain` when calling `get_execution_data2`") # noqa: E501 + raise ValueError("Missing the required parameter `id_domain` when calling `get_active_launch_plan`") # noqa: E501 # verify the required parameter 'id_name' is set if ('id_name' not in params or params['id_name'] is None): - raise ValueError("Missing the required parameter `id_name` when calling `get_execution_data2`") # noqa: E501 + raise ValueError("Missing the required parameter `id_name` when calling `get_active_launch_plan`") # noqa: E501 collection_formats = {} path_params = {} - if 'id_org' in params: - path_params['id.org'] = params['id_org'] # noqa: E501 if 'id_project' in params: path_params['id.project'] = params['id_project'] # noqa: E501 if 'id_domain' in params: @@ -2364,6 +2230,8 @@ def get_execution_data2_with_http_info(self, id_org, id_project, id_domain, id_n path_params['id.name'] = params['id_name'] # noqa: E501 query_params = [] + if 'id_org' in params: + query_params.append(('id.org', params['id_org'])) # noqa: E501 header_params = {} @@ -2383,14 +2251,14 @@ def get_execution_data2_with_http_info(self, id_org, id_project, id_domain, id_n auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/data/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}', 'GET', + '/api/v1/active_launch_plans/{id.project}/{id.domain}/{id.name}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminWorkflowExecutionGetDataResponse', # noqa: E501 + response_type='AdminLaunchPlan', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -2398,51 +2266,49 @@ def get_execution_data2_with_http_info(self, id_org, id_project, id_domain, id_n _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def get_execution_metrics(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 - """Fetches runtime metrics for a :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 + def get_active_launch_plan2(self, id_org, id_project, id_domain, id_name, **kwargs): # noqa: E501 + """Fetch the active version of a :ref:`ref_flyteidl.admin.LaunchPlan`. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_execution_metrics(id_project, id_domain, id_name, async_req=True) + >>> thread = api.get_active_launch_plan2(id_org, id_project, id_domain, id_name, async_req=True) >>> result = thread.get() :param async_req bool + :param str id_org: Optional, org key applied to the resource. (required) :param str id_project: Name of the project the resource belongs to. (required) :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_name: User or system provided value for the resource. (required) - :param str id_org: Optional, org key applied to the resource. - :param int depth: depth defines the number of Flyte entity levels to traverse when breaking down execution details. - :return: AdminWorkflowExecutionGetMetricsResponse + :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) + :return: AdminLaunchPlan If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.get_execution_metrics_with_http_info(id_project, id_domain, id_name, **kwargs) # noqa: E501 + return self.get_active_launch_plan2_with_http_info(id_org, id_project, id_domain, id_name, **kwargs) # noqa: E501 else: - (data) = self.get_execution_metrics_with_http_info(id_project, id_domain, id_name, **kwargs) # noqa: E501 + (data) = self.get_active_launch_plan2_with_http_info(id_org, id_project, id_domain, id_name, **kwargs) # noqa: E501 return data - def get_execution_metrics_with_http_info(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 - """Fetches runtime metrics for a :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 + def get_active_launch_plan2_with_http_info(self, id_org, id_project, id_domain, id_name, **kwargs): # noqa: E501 + """Fetch the active version of a :ref:`ref_flyteidl.admin.LaunchPlan`. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_execution_metrics_with_http_info(id_project, id_domain, id_name, async_req=True) + >>> thread = api.get_active_launch_plan2_with_http_info(id_org, id_project, id_domain, id_name, async_req=True) >>> result = thread.get() :param async_req bool + :param str id_org: Optional, org key applied to the resource. (required) :param str id_project: Name of the project the resource belongs to. (required) :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_name: User or system provided value for the resource. (required) - :param str id_org: Optional, org key applied to the resource. - :param int depth: depth defines the number of Flyte entity levels to traverse when breaking down execution details. - :return: AdminWorkflowExecutionGetMetricsResponse + :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) + :return: AdminLaunchPlan If the method is called asynchronously, returns the request thread. """ - all_params = ['id_project', 'id_domain', 'id_name', 'id_org', 'depth'] # noqa: E501 + all_params = ['id_org', 'id_project', 'id_domain', 'id_name'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -2453,26 +2319,32 @@ def get_execution_metrics_with_http_info(self, id_project, id_domain, id_name, * if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method get_execution_metrics" % key + " to method get_active_launch_plan2" % key ) params[key] = val del params['kwargs'] + # verify the required parameter 'id_org' is set + if ('id_org' not in params or + params['id_org'] is None): + raise ValueError("Missing the required parameter `id_org` when calling `get_active_launch_plan2`") # noqa: E501 # verify the required parameter 'id_project' is set if ('id_project' not in params or params['id_project'] is None): - raise ValueError("Missing the required parameter `id_project` when calling `get_execution_metrics`") # noqa: E501 + raise ValueError("Missing the required parameter `id_project` when calling `get_active_launch_plan2`") # noqa: E501 # verify the required parameter 'id_domain' is set if ('id_domain' not in params or params['id_domain'] is None): - raise ValueError("Missing the required parameter `id_domain` when calling `get_execution_metrics`") # noqa: E501 + raise ValueError("Missing the required parameter `id_domain` when calling `get_active_launch_plan2`") # noqa: E501 # verify the required parameter 'id_name' is set if ('id_name' not in params or params['id_name'] is None): - raise ValueError("Missing the required parameter `id_name` when calling `get_execution_metrics`") # noqa: E501 + raise ValueError("Missing the required parameter `id_name` when calling `get_active_launch_plan2`") # noqa: E501 collection_formats = {} path_params = {} + if 'id_org' in params: + path_params['id.org'] = params['id_org'] # noqa: E501 if 'id_project' in params: path_params['id.project'] = params['id_project'] # noqa: E501 if 'id_domain' in params: @@ -2481,10 +2353,6 @@ def get_execution_metrics_with_http_info(self, id_project, id_domain, id_name, * path_params['id.name'] = params['id_name'] # noqa: E501 query_params = [] - if 'id_org' in params: - query_params.append(('id.org', params['id_org'])) # noqa: E501 - if 'depth' in params: - query_params.append(('depth', params['depth'])) # noqa: E501 header_params = {} @@ -2504,14 +2372,14 @@ def get_execution_metrics_with_http_info(self, id_project, id_domain, id_name, * auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/metrics/executions/{id.project}/{id.domain}/{id.name}', 'GET', + '/api/v1/active_launch_plans/org/{id.org}/{id.project}/{id.domain}/{id.name}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminWorkflowExecutionGetMetricsResponse', # noqa: E501 + response_type='AdminLaunchPlan', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -2519,51 +2387,53 @@ def get_execution_metrics_with_http_info(self, id_project, id_domain, id_name, * _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def get_execution_metrics2(self, id_org, id_project, id_domain, id_name, **kwargs): # noqa: E501 - """Fetches runtime metrics for a :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 + def get_description_entity(self, id_resource_type, id_project, id_domain, id_name, id_version, **kwargs): # noqa: E501 + """Fetch a :ref:`ref_flyteidl.admin.DescriptionEntity` object. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_execution_metrics2(id_org, id_project, id_domain, id_name, async_req=True) + >>> thread = api.get_description_entity(id_resource_type, id_project, id_domain, id_name, id_version, async_req=True) >>> result = thread.get() :param async_req bool - :param str id_org: Optional, org key applied to the resource. (required) + :param str id_resource_type: Identifies the specific type of resource that this identifier corresponds to. (required) :param str id_project: Name of the project the resource belongs to. (required) :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_name: User or system provided value for the resource. (required) - :param int depth: depth defines the number of Flyte entity levels to traverse when breaking down execution details. - :return: AdminWorkflowExecutionGetMetricsResponse + :param str id_name: User provided value for the resource. (required) + :param str id_version: Specific version of the resource. (required) + :param str id_org: Optional, org key applied to the resource. + :return: AdminDescriptionEntity If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.get_execution_metrics2_with_http_info(id_org, id_project, id_domain, id_name, **kwargs) # noqa: E501 + return self.get_description_entity_with_http_info(id_resource_type, id_project, id_domain, id_name, id_version, **kwargs) # noqa: E501 else: - (data) = self.get_execution_metrics2_with_http_info(id_org, id_project, id_domain, id_name, **kwargs) # noqa: E501 + (data) = self.get_description_entity_with_http_info(id_resource_type, id_project, id_domain, id_name, id_version, **kwargs) # noqa: E501 return data - def get_execution_metrics2_with_http_info(self, id_org, id_project, id_domain, id_name, **kwargs): # noqa: E501 - """Fetches runtime metrics for a :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 + def get_description_entity_with_http_info(self, id_resource_type, id_project, id_domain, id_name, id_version, **kwargs): # noqa: E501 + """Fetch a :ref:`ref_flyteidl.admin.DescriptionEntity` object. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_execution_metrics2_with_http_info(id_org, id_project, id_domain, id_name, async_req=True) + >>> thread = api.get_description_entity_with_http_info(id_resource_type, id_project, id_domain, id_name, id_version, async_req=True) >>> result = thread.get() :param async_req bool - :param str id_org: Optional, org key applied to the resource. (required) + :param str id_resource_type: Identifies the specific type of resource that this identifier corresponds to. (required) :param str id_project: Name of the project the resource belongs to. (required) :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_name: User or system provided value for the resource. (required) - :param int depth: depth defines the number of Flyte entity levels to traverse when breaking down execution details. - :return: AdminWorkflowExecutionGetMetricsResponse + :param str id_name: User provided value for the resource. (required) + :param str id_version: Specific version of the resource. (required) + :param str id_org: Optional, org key applied to the resource. + :return: AdminDescriptionEntity If the method is called asynchronously, returns the request thread. """ - all_params = ['id_org', 'id_project', 'id_domain', 'id_name', 'depth'] # noqa: E501 + all_params = ['id_resource_type', 'id_project', 'id_domain', 'id_name', 'id_version', 'id_org'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -2574,42 +2444,48 @@ def get_execution_metrics2_with_http_info(self, id_org, id_project, id_domain, i if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method get_execution_metrics2" % key + " to method get_description_entity" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'id_org' is set - if ('id_org' not in params or - params['id_org'] is None): - raise ValueError("Missing the required parameter `id_org` when calling `get_execution_metrics2`") # noqa: E501 + # verify the required parameter 'id_resource_type' is set + if ('id_resource_type' not in params or + params['id_resource_type'] is None): + raise ValueError("Missing the required parameter `id_resource_type` when calling `get_description_entity`") # noqa: E501 # verify the required parameter 'id_project' is set if ('id_project' not in params or params['id_project'] is None): - raise ValueError("Missing the required parameter `id_project` when calling `get_execution_metrics2`") # noqa: E501 + raise ValueError("Missing the required parameter `id_project` when calling `get_description_entity`") # noqa: E501 # verify the required parameter 'id_domain' is set if ('id_domain' not in params or params['id_domain'] is None): - raise ValueError("Missing the required parameter `id_domain` when calling `get_execution_metrics2`") # noqa: E501 + raise ValueError("Missing the required parameter `id_domain` when calling `get_description_entity`") # noqa: E501 # verify the required parameter 'id_name' is set if ('id_name' not in params or params['id_name'] is None): - raise ValueError("Missing the required parameter `id_name` when calling `get_execution_metrics2`") # noqa: E501 + raise ValueError("Missing the required parameter `id_name` when calling `get_description_entity`") # noqa: E501 + # verify the required parameter 'id_version' is set + if ('id_version' not in params or + params['id_version'] is None): + raise ValueError("Missing the required parameter `id_version` when calling `get_description_entity`") # noqa: E501 collection_formats = {} path_params = {} - if 'id_org' in params: - path_params['id.org'] = params['id_org'] # noqa: E501 + if 'id_resource_type' in params: + path_params['id.resource_type'] = params['id_resource_type'] # noqa: E501 if 'id_project' in params: path_params['id.project'] = params['id_project'] # noqa: E501 if 'id_domain' in params: path_params['id.domain'] = params['id_domain'] # noqa: E501 if 'id_name' in params: path_params['id.name'] = params['id_name'] # noqa: E501 + if 'id_version' in params: + path_params['id.version'] = params['id_version'] # noqa: E501 query_params = [] - if 'depth' in params: - query_params.append(('depth', params['depth'])) # noqa: E501 + if 'id_org' in params: + query_params.append(('id.org', params['id_org'])) # noqa: E501 header_params = {} @@ -2629,14 +2505,14 @@ def get_execution_metrics2_with_http_info(self, id_org, id_project, id_domain, i auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/metrics/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}', 'GET', + '/api/v1/description_entities/{id.resource_type}/{id.project}/{id.domain}/{id.name}/{id.version}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminWorkflowExecutionGetMetricsResponse', # noqa: E501 + response_type='AdminDescriptionEntity', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -2644,53 +2520,53 @@ def get_execution_metrics2_with_http_info(self, id_org, id_project, id_domain, i _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def get_launch_plan(self, id_project, id_domain, id_name, id_version, **kwargs): # noqa: E501 - """Fetch a :ref:`ref_flyteidl.admin.LaunchPlan` definition. # noqa: E501 + def get_description_entity2(self, id_org, id_resource_type, id_project, id_domain, id_name, id_version, **kwargs): # noqa: E501 + """Fetch a :ref:`ref_flyteidl.admin.DescriptionEntity` object. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_launch_plan(id_project, id_domain, id_name, id_version, async_req=True) + >>> thread = api.get_description_entity2(id_org, id_resource_type, id_project, id_domain, id_name, id_version, async_req=True) >>> result = thread.get() :param async_req bool + :param str id_org: Optional, org key applied to the resource. (required) + :param str id_resource_type: Identifies the specific type of resource that this identifier corresponds to. (required) :param str id_project: Name of the project the resource belongs to. (required) :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) :param str id_name: User provided value for the resource. (required) :param str id_version: Specific version of the resource. (required) - :param str id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects - :param str id_org: Optional, org key applied to the resource. - :return: AdminLaunchPlan + :return: AdminDescriptionEntity If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.get_launch_plan_with_http_info(id_project, id_domain, id_name, id_version, **kwargs) # noqa: E501 + return self.get_description_entity2_with_http_info(id_org, id_resource_type, id_project, id_domain, id_name, id_version, **kwargs) # noqa: E501 else: - (data) = self.get_launch_plan_with_http_info(id_project, id_domain, id_name, id_version, **kwargs) # noqa: E501 + (data) = self.get_description_entity2_with_http_info(id_org, id_resource_type, id_project, id_domain, id_name, id_version, **kwargs) # noqa: E501 return data - def get_launch_plan_with_http_info(self, id_project, id_domain, id_name, id_version, **kwargs): # noqa: E501 - """Fetch a :ref:`ref_flyteidl.admin.LaunchPlan` definition. # noqa: E501 + def get_description_entity2_with_http_info(self, id_org, id_resource_type, id_project, id_domain, id_name, id_version, **kwargs): # noqa: E501 + """Fetch a :ref:`ref_flyteidl.admin.DescriptionEntity` object. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_launch_plan_with_http_info(id_project, id_domain, id_name, id_version, async_req=True) + >>> thread = api.get_description_entity2_with_http_info(id_org, id_resource_type, id_project, id_domain, id_name, id_version, async_req=True) >>> result = thread.get() :param async_req bool + :param str id_org: Optional, org key applied to the resource. (required) + :param str id_resource_type: Identifies the specific type of resource that this identifier corresponds to. (required) :param str id_project: Name of the project the resource belongs to. (required) :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) :param str id_name: User provided value for the resource. (required) :param str id_version: Specific version of the resource. (required) - :param str id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects - :param str id_org: Optional, org key applied to the resource. - :return: AdminLaunchPlan + :return: AdminDescriptionEntity If the method is called asynchronously, returns the request thread. """ - all_params = ['id_project', 'id_domain', 'id_name', 'id_version', 'id_resource_type', 'id_org'] # noqa: E501 + all_params = ['id_org', 'id_resource_type', 'id_project', 'id_domain', 'id_name', 'id_version'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -2701,30 +2577,42 @@ def get_launch_plan_with_http_info(self, id_project, id_domain, id_name, id_vers if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method get_launch_plan" % key + " to method get_description_entity2" % key ) params[key] = val del params['kwargs'] + # verify the required parameter 'id_org' is set + if ('id_org' not in params or + params['id_org'] is None): + raise ValueError("Missing the required parameter `id_org` when calling `get_description_entity2`") # noqa: E501 + # verify the required parameter 'id_resource_type' is set + if ('id_resource_type' not in params or + params['id_resource_type'] is None): + raise ValueError("Missing the required parameter `id_resource_type` when calling `get_description_entity2`") # noqa: E501 # verify the required parameter 'id_project' is set if ('id_project' not in params or params['id_project'] is None): - raise ValueError("Missing the required parameter `id_project` when calling `get_launch_plan`") # noqa: E501 + raise ValueError("Missing the required parameter `id_project` when calling `get_description_entity2`") # noqa: E501 # verify the required parameter 'id_domain' is set if ('id_domain' not in params or params['id_domain'] is None): - raise ValueError("Missing the required parameter `id_domain` when calling `get_launch_plan`") # noqa: E501 + raise ValueError("Missing the required parameter `id_domain` when calling `get_description_entity2`") # noqa: E501 # verify the required parameter 'id_name' is set if ('id_name' not in params or params['id_name'] is None): - raise ValueError("Missing the required parameter `id_name` when calling `get_launch_plan`") # noqa: E501 + raise ValueError("Missing the required parameter `id_name` when calling `get_description_entity2`") # noqa: E501 # verify the required parameter 'id_version' is set if ('id_version' not in params or params['id_version'] is None): - raise ValueError("Missing the required parameter `id_version` when calling `get_launch_plan`") # noqa: E501 + raise ValueError("Missing the required parameter `id_version` when calling `get_description_entity2`") # noqa: E501 collection_formats = {} path_params = {} + if 'id_org' in params: + path_params['id.org'] = params['id_org'] # noqa: E501 + if 'id_resource_type' in params: + path_params['id.resource_type'] = params['id_resource_type'] # noqa: E501 if 'id_project' in params: path_params['id.project'] = params['id_project'] # noqa: E501 if 'id_domain' in params: @@ -2735,10 +2623,6 @@ def get_launch_plan_with_http_info(self, id_project, id_domain, id_name, id_vers path_params['id.version'] = params['id_version'] # noqa: E501 query_params = [] - if 'id_resource_type' in params: - query_params.append(('id.resource_type', params['id_resource_type'])) # noqa: E501 - if 'id_org' in params: - query_params.append(('id.org', params['id_org'])) # noqa: E501 header_params = {} @@ -2758,14 +2642,14 @@ def get_launch_plan_with_http_info(self, id_project, id_domain, id_name, id_vers auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version}', 'GET', + '/api/v1/description_entities/org/{id.org}/{id.resource_type}/{id.project}/{id.domain}/{id.name}/{id.version}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminLaunchPlan', # noqa: E501 + response_type='AdminDescriptionEntity', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -2773,53 +2657,49 @@ def get_launch_plan_with_http_info(self, id_project, id_domain, id_name, id_vers _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def get_launch_plan2(self, id_org, id_project, id_domain, id_name, id_version, **kwargs): # noqa: E501 - """Fetch a :ref:`ref_flyteidl.admin.LaunchPlan` definition. # noqa: E501 + def get_execution(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 + """Fetches a :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_launch_plan2(id_org, id_project, id_domain, id_name, id_version, async_req=True) + >>> thread = api.get_execution(id_project, id_domain, id_name, async_req=True) >>> result = thread.get() :param async_req bool - :param str id_org: Optional, org key applied to the resource. (required) :param str id_project: Name of the project the resource belongs to. (required) :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_name: User provided value for the resource. (required) - :param str id_version: Specific version of the resource. (required) - :param str id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects - :return: AdminLaunchPlan + :param str id_name: User or system provided value for the resource. (required) + :param str id_org: Optional, org key applied to the resource. + :return: AdminExecution If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.get_launch_plan2_with_http_info(id_org, id_project, id_domain, id_name, id_version, **kwargs) # noqa: E501 + return self.get_execution_with_http_info(id_project, id_domain, id_name, **kwargs) # noqa: E501 else: - (data) = self.get_launch_plan2_with_http_info(id_org, id_project, id_domain, id_name, id_version, **kwargs) # noqa: E501 + (data) = self.get_execution_with_http_info(id_project, id_domain, id_name, **kwargs) # noqa: E501 return data - def get_launch_plan2_with_http_info(self, id_org, id_project, id_domain, id_name, id_version, **kwargs): # noqa: E501 - """Fetch a :ref:`ref_flyteidl.admin.LaunchPlan` definition. # noqa: E501 + def get_execution_with_http_info(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 + """Fetches a :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_launch_plan2_with_http_info(id_org, id_project, id_domain, id_name, id_version, async_req=True) + >>> thread = api.get_execution_with_http_info(id_project, id_domain, id_name, async_req=True) >>> result = thread.get() :param async_req bool - :param str id_org: Optional, org key applied to the resource. (required) :param str id_project: Name of the project the resource belongs to. (required) :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_name: User provided value for the resource. (required) - :param str id_version: Specific version of the resource. (required) - :param str id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects - :return: AdminLaunchPlan + :param str id_name: User or system provided value for the resource. (required) + :param str id_org: Optional, org key applied to the resource. + :return: AdminExecution If the method is called asynchronously, returns the request thread. """ - all_params = ['id_org', 'id_project', 'id_domain', 'id_name', 'id_version', 'id_resource_type'] # noqa: E501 + all_params = ['id_project', 'id_domain', 'id_name', 'id_org'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -2830,48 +2710,36 @@ def get_launch_plan2_with_http_info(self, id_org, id_project, id_domain, id_name if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method get_launch_plan2" % key + " to method get_execution" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'id_org' is set - if ('id_org' not in params or - params['id_org'] is None): - raise ValueError("Missing the required parameter `id_org` when calling `get_launch_plan2`") # noqa: E501 # verify the required parameter 'id_project' is set if ('id_project' not in params or params['id_project'] is None): - raise ValueError("Missing the required parameter `id_project` when calling `get_launch_plan2`") # noqa: E501 + raise ValueError("Missing the required parameter `id_project` when calling `get_execution`") # noqa: E501 # verify the required parameter 'id_domain' is set if ('id_domain' not in params or params['id_domain'] is None): - raise ValueError("Missing the required parameter `id_domain` when calling `get_launch_plan2`") # noqa: E501 + raise ValueError("Missing the required parameter `id_domain` when calling `get_execution`") # noqa: E501 # verify the required parameter 'id_name' is set if ('id_name' not in params or params['id_name'] is None): - raise ValueError("Missing the required parameter `id_name` when calling `get_launch_plan2`") # noqa: E501 - # verify the required parameter 'id_version' is set - if ('id_version' not in params or - params['id_version'] is None): - raise ValueError("Missing the required parameter `id_version` when calling `get_launch_plan2`") # noqa: E501 + raise ValueError("Missing the required parameter `id_name` when calling `get_execution`") # noqa: E501 collection_formats = {} path_params = {} - if 'id_org' in params: - path_params['id.org'] = params['id_org'] # noqa: E501 if 'id_project' in params: path_params['id.project'] = params['id_project'] # noqa: E501 if 'id_domain' in params: path_params['id.domain'] = params['id_domain'] # noqa: E501 if 'id_name' in params: path_params['id.name'] = params['id_name'] # noqa: E501 - if 'id_version' in params: - path_params['id.version'] = params['id_version'] # noqa: E501 query_params = [] - if 'id_resource_type' in params: - query_params.append(('id.resource_type', params['id_resource_type'])) # noqa: E501 + if 'id_org' in params: + query_params.append(('id.org', params['id_org'])) # noqa: E501 header_params = {} @@ -2891,14 +2759,14 @@ def get_launch_plan2_with_http_info(self, id_org, id_project, id_domain, id_name auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/launch_plans/org/{id.org}/{id.project}/{id.domain}/{id.name}/{id.version}', 'GET', + '/api/v1/executions/{id.project}/{id.domain}/{id.name}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminLaunchPlan', # noqa: E501 + response_type='AdminExecution', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -2906,51 +2774,49 @@ def get_launch_plan2_with_http_info(self, id_org, id_project, id_domain, id_name _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def get_named_entity(self, resource_type, id_project, id_domain, id_name, **kwargs): # noqa: E501 - """Returns a :ref:`ref_flyteidl.admin.NamedEntity` object. # noqa: E501 + def get_execution2(self, id_org, id_project, id_domain, id_name, **kwargs): # noqa: E501 + """Fetches a :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_named_entity(resource_type, id_project, id_domain, id_name, async_req=True) + >>> thread = api.get_execution2(id_org, id_project, id_domain, id_name, async_req=True) >>> result = thread.get() :param async_req bool - :param str resource_type: Resource type of the metadata to get. One of Task, Workflow or LaunchPlan. +required (required) + :param str id_org: Optional, org key applied to the resource. (required) :param str id_project: Name of the project the resource belongs to. (required) :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) - :param str id_org: Optional, org key applied to the resource. - :return: AdminNamedEntity + :param str id_name: User or system provided value for the resource. (required) + :return: AdminExecution If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.get_named_entity_with_http_info(resource_type, id_project, id_domain, id_name, **kwargs) # noqa: E501 + return self.get_execution2_with_http_info(id_org, id_project, id_domain, id_name, **kwargs) # noqa: E501 else: - (data) = self.get_named_entity_with_http_info(resource_type, id_project, id_domain, id_name, **kwargs) # noqa: E501 + (data) = self.get_execution2_with_http_info(id_org, id_project, id_domain, id_name, **kwargs) # noqa: E501 return data - def get_named_entity_with_http_info(self, resource_type, id_project, id_domain, id_name, **kwargs): # noqa: E501 - """Returns a :ref:`ref_flyteidl.admin.NamedEntity` object. # noqa: E501 + def get_execution2_with_http_info(self, id_org, id_project, id_domain, id_name, **kwargs): # noqa: E501 + """Fetches a :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_named_entity_with_http_info(resource_type, id_project, id_domain, id_name, async_req=True) + >>> thread = api.get_execution2_with_http_info(id_org, id_project, id_domain, id_name, async_req=True) >>> result = thread.get() :param async_req bool - :param str resource_type: Resource type of the metadata to get. One of Task, Workflow or LaunchPlan. +required (required) + :param str id_org: Optional, org key applied to the resource. (required) :param str id_project: Name of the project the resource belongs to. (required) :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) - :param str id_org: Optional, org key applied to the resource. - :return: AdminNamedEntity + :param str id_name: User or system provided value for the resource. (required) + :return: AdminExecution If the method is called asynchronously, returns the request thread. """ - all_params = ['resource_type', 'id_project', 'id_domain', 'id_name', 'id_org'] # noqa: E501 + all_params = ['id_org', 'id_project', 'id_domain', 'id_name'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -2961,32 +2827,32 @@ def get_named_entity_with_http_info(self, resource_type, id_project, id_domain, if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method get_named_entity" % key + " to method get_execution2" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'resource_type' is set - if ('resource_type' not in params or - params['resource_type'] is None): - raise ValueError("Missing the required parameter `resource_type` when calling `get_named_entity`") # noqa: E501 + # verify the required parameter 'id_org' is set + if ('id_org' not in params or + params['id_org'] is None): + raise ValueError("Missing the required parameter `id_org` when calling `get_execution2`") # noqa: E501 # verify the required parameter 'id_project' is set if ('id_project' not in params or params['id_project'] is None): - raise ValueError("Missing the required parameter `id_project` when calling `get_named_entity`") # noqa: E501 + raise ValueError("Missing the required parameter `id_project` when calling `get_execution2`") # noqa: E501 # verify the required parameter 'id_domain' is set if ('id_domain' not in params or params['id_domain'] is None): - raise ValueError("Missing the required parameter `id_domain` when calling `get_named_entity`") # noqa: E501 + raise ValueError("Missing the required parameter `id_domain` when calling `get_execution2`") # noqa: E501 # verify the required parameter 'id_name' is set if ('id_name' not in params or params['id_name'] is None): - raise ValueError("Missing the required parameter `id_name` when calling `get_named_entity`") # noqa: E501 + raise ValueError("Missing the required parameter `id_name` when calling `get_execution2`") # noqa: E501 collection_formats = {} path_params = {} - if 'resource_type' in params: - path_params['resource_type'] = params['resource_type'] # noqa: E501 + if 'id_org' in params: + path_params['id.org'] = params['id_org'] # noqa: E501 if 'id_project' in params: path_params['id.project'] = params['id_project'] # noqa: E501 if 'id_domain' in params: @@ -2995,8 +2861,6 @@ def get_named_entity_with_http_info(self, resource_type, id_project, id_domain, path_params['id.name'] = params['id_name'] # noqa: E501 query_params = [] - if 'id_org' in params: - query_params.append(('id.org', params['id_org'])) # noqa: E501 header_params = {} @@ -3016,14 +2880,14 @@ def get_named_entity_with_http_info(self, resource_type, id_project, id_domain, auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/named_entities/{resource_type}/{id.project}/{id.domain}/{id.name}', 'GET', + '/api/v1/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminNamedEntity', # noqa: E501 + response_type='AdminExecution', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -3031,51 +2895,49 @@ def get_named_entity_with_http_info(self, resource_type, id_project, id_domain, _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def get_named_entity2(self, resource_type, id_org, id_project, id_domain, id_name, **kwargs): # noqa: E501 - """Returns a :ref:`ref_flyteidl.admin.NamedEntity` object. # noqa: E501 + def get_execution_data(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 + """Fetches input and output data for a :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_named_entity2(resource_type, id_org, id_project, id_domain, id_name, async_req=True) + >>> thread = api.get_execution_data(id_project, id_domain, id_name, async_req=True) >>> result = thread.get() :param async_req bool - :param str resource_type: Resource type of the metadata to get. One of Task, Workflow or LaunchPlan. +required (required) - :param str id_org: Optional, org key applied to the resource. (required) :param str id_project: Name of the project the resource belongs to. (required) :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) - :return: AdminNamedEntity + :param str id_name: User or system provided value for the resource. (required) + :param str id_org: Optional, org key applied to the resource. + :return: AdminWorkflowExecutionGetDataResponse If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.get_named_entity2_with_http_info(resource_type, id_org, id_project, id_domain, id_name, **kwargs) # noqa: E501 + return self.get_execution_data_with_http_info(id_project, id_domain, id_name, **kwargs) # noqa: E501 else: - (data) = self.get_named_entity2_with_http_info(resource_type, id_org, id_project, id_domain, id_name, **kwargs) # noqa: E501 + (data) = self.get_execution_data_with_http_info(id_project, id_domain, id_name, **kwargs) # noqa: E501 return data - def get_named_entity2_with_http_info(self, resource_type, id_org, id_project, id_domain, id_name, **kwargs): # noqa: E501 - """Returns a :ref:`ref_flyteidl.admin.NamedEntity` object. # noqa: E501 + def get_execution_data_with_http_info(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 + """Fetches input and output data for a :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_named_entity2_with_http_info(resource_type, id_org, id_project, id_domain, id_name, async_req=True) + >>> thread = api.get_execution_data_with_http_info(id_project, id_domain, id_name, async_req=True) >>> result = thread.get() :param async_req bool - :param str resource_type: Resource type of the metadata to get. One of Task, Workflow or LaunchPlan. +required (required) - :param str id_org: Optional, org key applied to the resource. (required) :param str id_project: Name of the project the resource belongs to. (required) :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) - :return: AdminNamedEntity + :param str id_name: User or system provided value for the resource. (required) + :param str id_org: Optional, org key applied to the resource. + :return: AdminWorkflowExecutionGetDataResponse If the method is called asynchronously, returns the request thread. """ - all_params = ['resource_type', 'id_org', 'id_project', 'id_domain', 'id_name'] # noqa: E501 + all_params = ['id_project', 'id_domain', 'id_name', 'id_org'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -3086,38 +2948,26 @@ def get_named_entity2_with_http_info(self, resource_type, id_org, id_project, id if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method get_named_entity2" % key + " to method get_execution_data" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'resource_type' is set - if ('resource_type' not in params or - params['resource_type'] is None): - raise ValueError("Missing the required parameter `resource_type` when calling `get_named_entity2`") # noqa: E501 - # verify the required parameter 'id_org' is set - if ('id_org' not in params or - params['id_org'] is None): - raise ValueError("Missing the required parameter `id_org` when calling `get_named_entity2`") # noqa: E501 # verify the required parameter 'id_project' is set if ('id_project' not in params or params['id_project'] is None): - raise ValueError("Missing the required parameter `id_project` when calling `get_named_entity2`") # noqa: E501 + raise ValueError("Missing the required parameter `id_project` when calling `get_execution_data`") # noqa: E501 # verify the required parameter 'id_domain' is set if ('id_domain' not in params or params['id_domain'] is None): - raise ValueError("Missing the required parameter `id_domain` when calling `get_named_entity2`") # noqa: E501 + raise ValueError("Missing the required parameter `id_domain` when calling `get_execution_data`") # noqa: E501 # verify the required parameter 'id_name' is set if ('id_name' not in params or params['id_name'] is None): - raise ValueError("Missing the required parameter `id_name` when calling `get_named_entity2`") # noqa: E501 + raise ValueError("Missing the required parameter `id_name` when calling `get_execution_data`") # noqa: E501 collection_formats = {} path_params = {} - if 'resource_type' in params: - path_params['resource_type'] = params['resource_type'] # noqa: E501 - if 'id_org' in params: - path_params['id.org'] = params['id_org'] # noqa: E501 if 'id_project' in params: path_params['id.project'] = params['id_project'] # noqa: E501 if 'id_domain' in params: @@ -3126,6 +2976,8 @@ def get_named_entity2_with_http_info(self, resource_type, id_org, id_project, id path_params['id.name'] = params['id_name'] # noqa: E501 query_params = [] + if 'id_org' in params: + query_params.append(('id.org', params['id_org'])) # noqa: E501 header_params = {} @@ -3145,14 +2997,14 @@ def get_named_entity2_with_http_info(self, resource_type, id_org, id_project, id auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/named_entities/{resource_type}/org/{id.org}/{id.project}/{id.domain}/{id.name}', 'GET', + '/api/v1/data/executions/{id.project}/{id.domain}/{id.name}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminNamedEntity', # noqa: E501 + response_type='AdminWorkflowExecutionGetDataResponse', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -3160,51 +3012,49 @@ def get_named_entity2_with_http_info(self, resource_type, id_org, id_project, id _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def get_node_execution(self, id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, **kwargs): # noqa: E501 - """Fetches a :ref:`ref_flyteidl.admin.NodeExecution`. # noqa: E501 + def get_execution_data2(self, id_org, id_project, id_domain, id_name, **kwargs): # noqa: E501 + """Fetches input and output data for a :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_node_execution(id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, async_req=True) + >>> thread = api.get_execution_data2(id_org, id_project, id_domain, id_name, async_req=True) >>> result = thread.get() :param async_req bool - :param str id_execution_id_project: Name of the project the resource belongs to. (required) - :param str id_execution_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_execution_id_name: User or system provided value for the resource. (required) - :param str id_node_id: (required) - :param str id_execution_id_org: Optional, org key applied to the resource. - :return: FlyteidladminNodeExecution + :param str id_org: Optional, org key applied to the resource. (required) + :param str id_project: Name of the project the resource belongs to. (required) + :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str id_name: User or system provided value for the resource. (required) + :return: AdminWorkflowExecutionGetDataResponse If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.get_node_execution_with_http_info(id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, **kwargs) # noqa: E501 + return self.get_execution_data2_with_http_info(id_org, id_project, id_domain, id_name, **kwargs) # noqa: E501 else: - (data) = self.get_node_execution_with_http_info(id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, **kwargs) # noqa: E501 + (data) = self.get_execution_data2_with_http_info(id_org, id_project, id_domain, id_name, **kwargs) # noqa: E501 return data - def get_node_execution_with_http_info(self, id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, **kwargs): # noqa: E501 - """Fetches a :ref:`ref_flyteidl.admin.NodeExecution`. # noqa: E501 + def get_execution_data2_with_http_info(self, id_org, id_project, id_domain, id_name, **kwargs): # noqa: E501 + """Fetches input and output data for a :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_node_execution_with_http_info(id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, async_req=True) + >>> thread = api.get_execution_data2_with_http_info(id_org, id_project, id_domain, id_name, async_req=True) >>> result = thread.get() :param async_req bool - :param str id_execution_id_project: Name of the project the resource belongs to. (required) - :param str id_execution_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_execution_id_name: User or system provided value for the resource. (required) - :param str id_node_id: (required) - :param str id_execution_id_org: Optional, org key applied to the resource. - :return: FlyteidladminNodeExecution + :param str id_org: Optional, org key applied to the resource. (required) + :param str id_project: Name of the project the resource belongs to. (required) + :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str id_name: User or system provided value for the resource. (required) + :return: AdminWorkflowExecutionGetDataResponse If the method is called asynchronously, returns the request thread. """ - all_params = ['id_execution_id_project', 'id_execution_id_domain', 'id_execution_id_name', 'id_node_id', 'id_execution_id_org'] # noqa: E501 + all_params = ['id_org', 'id_project', 'id_domain', 'id_name'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -3215,42 +3065,40 @@ def get_node_execution_with_http_info(self, id_execution_id_project, id_executio if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method get_node_execution" % key + " to method get_execution_data2" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'id_execution_id_project' is set - if ('id_execution_id_project' not in params or - params['id_execution_id_project'] is None): - raise ValueError("Missing the required parameter `id_execution_id_project` when calling `get_node_execution`") # noqa: E501 - # verify the required parameter 'id_execution_id_domain' is set - if ('id_execution_id_domain' not in params or - params['id_execution_id_domain'] is None): - raise ValueError("Missing the required parameter `id_execution_id_domain` when calling `get_node_execution`") # noqa: E501 - # verify the required parameter 'id_execution_id_name' is set - if ('id_execution_id_name' not in params or - params['id_execution_id_name'] is None): - raise ValueError("Missing the required parameter `id_execution_id_name` when calling `get_node_execution`") # noqa: E501 - # verify the required parameter 'id_node_id' is set - if ('id_node_id' not in params or - params['id_node_id'] is None): - raise ValueError("Missing the required parameter `id_node_id` when calling `get_node_execution`") # noqa: E501 + # verify the required parameter 'id_org' is set + if ('id_org' not in params or + params['id_org'] is None): + raise ValueError("Missing the required parameter `id_org` when calling `get_execution_data2`") # noqa: E501 + # verify the required parameter 'id_project' is set + if ('id_project' not in params or + params['id_project'] is None): + raise ValueError("Missing the required parameter `id_project` when calling `get_execution_data2`") # noqa: E501 + # verify the required parameter 'id_domain' is set + if ('id_domain' not in params or + params['id_domain'] is None): + raise ValueError("Missing the required parameter `id_domain` when calling `get_execution_data2`") # noqa: E501 + # verify the required parameter 'id_name' is set + if ('id_name' not in params or + params['id_name'] is None): + raise ValueError("Missing the required parameter `id_name` when calling `get_execution_data2`") # noqa: E501 collection_formats = {} path_params = {} - if 'id_execution_id_project' in params: - path_params['id.execution_id.project'] = params['id_execution_id_project'] # noqa: E501 - if 'id_execution_id_domain' in params: - path_params['id.execution_id.domain'] = params['id_execution_id_domain'] # noqa: E501 - if 'id_execution_id_name' in params: - path_params['id.execution_id.name'] = params['id_execution_id_name'] # noqa: E501 - if 'id_node_id' in params: - path_params['id.node_id'] = params['id_node_id'] # noqa: E501 + if 'id_org' in params: + path_params['id.org'] = params['id_org'] # noqa: E501 + if 'id_project' in params: + path_params['id.project'] = params['id_project'] # noqa: E501 + if 'id_domain' in params: + path_params['id.domain'] = params['id_domain'] # noqa: E501 + if 'id_name' in params: + path_params['id.name'] = params['id_name'] # noqa: E501 query_params = [] - if 'id_execution_id_org' in params: - query_params.append(('id.execution_id.org', params['id_execution_id_org'])) # noqa: E501 header_params = {} @@ -3270,14 +3118,14 @@ def get_node_execution_with_http_info(self, id_execution_id_project, id_executio auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}', 'GET', + '/api/v1/data/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='FlyteidladminNodeExecution', # noqa: E501 + response_type='AdminWorkflowExecutionGetDataResponse', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -3285,51 +3133,51 @@ def get_node_execution_with_http_info(self, id_execution_id_project, id_executio _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def get_node_execution2(self, id_execution_id_org, id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, **kwargs): # noqa: E501 - """Fetches a :ref:`ref_flyteidl.admin.NodeExecution`. # noqa: E501 + def get_execution_metrics(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 + """Fetches runtime metrics for a :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_node_execution2(id_execution_id_org, id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, async_req=True) + >>> thread = api.get_execution_metrics(id_project, id_domain, id_name, async_req=True) >>> result = thread.get() :param async_req bool - :param str id_execution_id_org: Optional, org key applied to the resource. (required) - :param str id_execution_id_project: Name of the project the resource belongs to. (required) - :param str id_execution_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_execution_id_name: User or system provided value for the resource. (required) - :param str id_node_id: (required) - :return: FlyteidladminNodeExecution + :param str id_project: Name of the project the resource belongs to. (required) + :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str id_name: User or system provided value for the resource. (required) + :param str id_org: Optional, org key applied to the resource. + :param int depth: depth defines the number of Flyte entity levels to traverse when breaking down execution details. + :return: AdminWorkflowExecutionGetMetricsResponse If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.get_node_execution2_with_http_info(id_execution_id_org, id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, **kwargs) # noqa: E501 + return self.get_execution_metrics_with_http_info(id_project, id_domain, id_name, **kwargs) # noqa: E501 else: - (data) = self.get_node_execution2_with_http_info(id_execution_id_org, id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, **kwargs) # noqa: E501 + (data) = self.get_execution_metrics_with_http_info(id_project, id_domain, id_name, **kwargs) # noqa: E501 return data - def get_node_execution2_with_http_info(self, id_execution_id_org, id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, **kwargs): # noqa: E501 - """Fetches a :ref:`ref_flyteidl.admin.NodeExecution`. # noqa: E501 + def get_execution_metrics_with_http_info(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 + """Fetches runtime metrics for a :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_node_execution2_with_http_info(id_execution_id_org, id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, async_req=True) + >>> thread = api.get_execution_metrics_with_http_info(id_project, id_domain, id_name, async_req=True) >>> result = thread.get() :param async_req bool - :param str id_execution_id_org: Optional, org key applied to the resource. (required) - :param str id_execution_id_project: Name of the project the resource belongs to. (required) - :param str id_execution_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_execution_id_name: User or system provided value for the resource. (required) - :param str id_node_id: (required) - :return: FlyteidladminNodeExecution + :param str id_project: Name of the project the resource belongs to. (required) + :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str id_name: User or system provided value for the resource. (required) + :param str id_org: Optional, org key applied to the resource. + :param int depth: depth defines the number of Flyte entity levels to traverse when breaking down execution details. + :return: AdminWorkflowExecutionGetMetricsResponse If the method is called asynchronously, returns the request thread. """ - all_params = ['id_execution_id_org', 'id_execution_id_project', 'id_execution_id_domain', 'id_execution_id_name', 'id_node_id'] # noqa: E501 + all_params = ['id_project', 'id_domain', 'id_name', 'id_org', 'depth'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -3340,46 +3188,38 @@ def get_node_execution2_with_http_info(self, id_execution_id_org, id_execution_i if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method get_node_execution2" % key + " to method get_execution_metrics" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'id_execution_id_org' is set - if ('id_execution_id_org' not in params or - params['id_execution_id_org'] is None): - raise ValueError("Missing the required parameter `id_execution_id_org` when calling `get_node_execution2`") # noqa: E501 - # verify the required parameter 'id_execution_id_project' is set - if ('id_execution_id_project' not in params or - params['id_execution_id_project'] is None): - raise ValueError("Missing the required parameter `id_execution_id_project` when calling `get_node_execution2`") # noqa: E501 - # verify the required parameter 'id_execution_id_domain' is set - if ('id_execution_id_domain' not in params or - params['id_execution_id_domain'] is None): - raise ValueError("Missing the required parameter `id_execution_id_domain` when calling `get_node_execution2`") # noqa: E501 - # verify the required parameter 'id_execution_id_name' is set - if ('id_execution_id_name' not in params or - params['id_execution_id_name'] is None): - raise ValueError("Missing the required parameter `id_execution_id_name` when calling `get_node_execution2`") # noqa: E501 - # verify the required parameter 'id_node_id' is set - if ('id_node_id' not in params or - params['id_node_id'] is None): - raise ValueError("Missing the required parameter `id_node_id` when calling `get_node_execution2`") # noqa: E501 + # verify the required parameter 'id_project' is set + if ('id_project' not in params or + params['id_project'] is None): + raise ValueError("Missing the required parameter `id_project` when calling `get_execution_metrics`") # noqa: E501 + # verify the required parameter 'id_domain' is set + if ('id_domain' not in params or + params['id_domain'] is None): + raise ValueError("Missing the required parameter `id_domain` when calling `get_execution_metrics`") # noqa: E501 + # verify the required parameter 'id_name' is set + if ('id_name' not in params or + params['id_name'] is None): + raise ValueError("Missing the required parameter `id_name` when calling `get_execution_metrics`") # noqa: E501 collection_formats = {} path_params = {} - if 'id_execution_id_org' in params: - path_params['id.execution_id.org'] = params['id_execution_id_org'] # noqa: E501 - if 'id_execution_id_project' in params: - path_params['id.execution_id.project'] = params['id_execution_id_project'] # noqa: E501 - if 'id_execution_id_domain' in params: - path_params['id.execution_id.domain'] = params['id_execution_id_domain'] # noqa: E501 - if 'id_execution_id_name' in params: - path_params['id.execution_id.name'] = params['id_execution_id_name'] # noqa: E501 - if 'id_node_id' in params: - path_params['id.node_id'] = params['id_node_id'] # noqa: E501 + if 'id_project' in params: + path_params['id.project'] = params['id_project'] # noqa: E501 + if 'id_domain' in params: + path_params['id.domain'] = params['id_domain'] # noqa: E501 + if 'id_name' in params: + path_params['id.name'] = params['id_name'] # noqa: E501 query_params = [] + if 'id_org' in params: + query_params.append(('id.org', params['id_org'])) # noqa: E501 + if 'depth' in params: + query_params.append(('depth', params['depth'])) # noqa: E501 header_params = {} @@ -3399,14 +3239,14 @@ def get_node_execution2_with_http_info(self, id_execution_id_org, id_execution_i auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/node_executions/org/{id.execution_id.org}/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}', 'GET', + '/api/v1/metrics/executions/{id.project}/{id.domain}/{id.name}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='FlyteidladminNodeExecution', # noqa: E501 + response_type='AdminWorkflowExecutionGetMetricsResponse', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -3414,51 +3254,51 @@ def get_node_execution2_with_http_info(self, id_execution_id_org, id_execution_i _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def get_node_execution_data(self, id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, **kwargs): # noqa: E501 - """Fetches input and output data for a :ref:`ref_flyteidl.admin.NodeExecution`. # noqa: E501 + def get_execution_metrics2(self, id_org, id_project, id_domain, id_name, **kwargs): # noqa: E501 + """Fetches runtime metrics for a :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_node_execution_data(id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, async_req=True) + >>> thread = api.get_execution_metrics2(id_org, id_project, id_domain, id_name, async_req=True) >>> result = thread.get() :param async_req bool - :param str id_execution_id_project: Name of the project the resource belongs to. (required) - :param str id_execution_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_execution_id_name: User or system provided value for the resource. (required) - :param str id_node_id: (required) - :param str id_execution_id_org: Optional, org key applied to the resource. - :return: AdminNodeExecutionGetDataResponse + :param str id_org: Optional, org key applied to the resource. (required) + :param str id_project: Name of the project the resource belongs to. (required) + :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str id_name: User or system provided value for the resource. (required) + :param int depth: depth defines the number of Flyte entity levels to traverse when breaking down execution details. + :return: AdminWorkflowExecutionGetMetricsResponse If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.get_node_execution_data_with_http_info(id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, **kwargs) # noqa: E501 + return self.get_execution_metrics2_with_http_info(id_org, id_project, id_domain, id_name, **kwargs) # noqa: E501 else: - (data) = self.get_node_execution_data_with_http_info(id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, **kwargs) # noqa: E501 + (data) = self.get_execution_metrics2_with_http_info(id_org, id_project, id_domain, id_name, **kwargs) # noqa: E501 return data - def get_node_execution_data_with_http_info(self, id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, **kwargs): # noqa: E501 - """Fetches input and output data for a :ref:`ref_flyteidl.admin.NodeExecution`. # noqa: E501 + def get_execution_metrics2_with_http_info(self, id_org, id_project, id_domain, id_name, **kwargs): # noqa: E501 + """Fetches runtime metrics for a :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_node_execution_data_with_http_info(id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, async_req=True) + >>> thread = api.get_execution_metrics2_with_http_info(id_org, id_project, id_domain, id_name, async_req=True) >>> result = thread.get() :param async_req bool - :param str id_execution_id_project: Name of the project the resource belongs to. (required) - :param str id_execution_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_execution_id_name: User or system provided value for the resource. (required) - :param str id_node_id: (required) - :param str id_execution_id_org: Optional, org key applied to the resource. - :return: AdminNodeExecutionGetDataResponse + :param str id_org: Optional, org key applied to the resource. (required) + :param str id_project: Name of the project the resource belongs to. (required) + :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str id_name: User or system provided value for the resource. (required) + :param int depth: depth defines the number of Flyte entity levels to traverse when breaking down execution details. + :return: AdminWorkflowExecutionGetMetricsResponse If the method is called asynchronously, returns the request thread. """ - all_params = ['id_execution_id_project', 'id_execution_id_domain', 'id_execution_id_name', 'id_node_id', 'id_execution_id_org'] # noqa: E501 + all_params = ['id_org', 'id_project', 'id_domain', 'id_name', 'depth'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -3469,42 +3309,42 @@ def get_node_execution_data_with_http_info(self, id_execution_id_project, id_exe if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method get_node_execution_data" % key + " to method get_execution_metrics2" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'id_execution_id_project' is set - if ('id_execution_id_project' not in params or - params['id_execution_id_project'] is None): - raise ValueError("Missing the required parameter `id_execution_id_project` when calling `get_node_execution_data`") # noqa: E501 - # verify the required parameter 'id_execution_id_domain' is set - if ('id_execution_id_domain' not in params or - params['id_execution_id_domain'] is None): - raise ValueError("Missing the required parameter `id_execution_id_domain` when calling `get_node_execution_data`") # noqa: E501 - # verify the required parameter 'id_execution_id_name' is set - if ('id_execution_id_name' not in params or - params['id_execution_id_name'] is None): - raise ValueError("Missing the required parameter `id_execution_id_name` when calling `get_node_execution_data`") # noqa: E501 - # verify the required parameter 'id_node_id' is set - if ('id_node_id' not in params or - params['id_node_id'] is None): - raise ValueError("Missing the required parameter `id_node_id` when calling `get_node_execution_data`") # noqa: E501 + # verify the required parameter 'id_org' is set + if ('id_org' not in params or + params['id_org'] is None): + raise ValueError("Missing the required parameter `id_org` when calling `get_execution_metrics2`") # noqa: E501 + # verify the required parameter 'id_project' is set + if ('id_project' not in params or + params['id_project'] is None): + raise ValueError("Missing the required parameter `id_project` when calling `get_execution_metrics2`") # noqa: E501 + # verify the required parameter 'id_domain' is set + if ('id_domain' not in params or + params['id_domain'] is None): + raise ValueError("Missing the required parameter `id_domain` when calling `get_execution_metrics2`") # noqa: E501 + # verify the required parameter 'id_name' is set + if ('id_name' not in params or + params['id_name'] is None): + raise ValueError("Missing the required parameter `id_name` when calling `get_execution_metrics2`") # noqa: E501 collection_formats = {} path_params = {} - if 'id_execution_id_project' in params: - path_params['id.execution_id.project'] = params['id_execution_id_project'] # noqa: E501 - if 'id_execution_id_domain' in params: - path_params['id.execution_id.domain'] = params['id_execution_id_domain'] # noqa: E501 - if 'id_execution_id_name' in params: - path_params['id.execution_id.name'] = params['id_execution_id_name'] # noqa: E501 - if 'id_node_id' in params: - path_params['id.node_id'] = params['id_node_id'] # noqa: E501 + if 'id_org' in params: + path_params['id.org'] = params['id_org'] # noqa: E501 + if 'id_project' in params: + path_params['id.project'] = params['id_project'] # noqa: E501 + if 'id_domain' in params: + path_params['id.domain'] = params['id_domain'] # noqa: E501 + if 'id_name' in params: + path_params['id.name'] = params['id_name'] # noqa: E501 query_params = [] - if 'id_execution_id_org' in params: - query_params.append(('id.execution_id.org', params['id_execution_id_org'])) # noqa: E501 + if 'depth' in params: + query_params.append(('depth', params['depth'])) # noqa: E501 header_params = {} @@ -3524,14 +3364,14 @@ def get_node_execution_data_with_http_info(self, id_execution_id_project, id_exe auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/data/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}', 'GET', + '/api/v1/metrics/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminNodeExecutionGetDataResponse', # noqa: E501 + response_type='AdminWorkflowExecutionGetMetricsResponse', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -3539,51 +3379,53 @@ def get_node_execution_data_with_http_info(self, id_execution_id_project, id_exe _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def get_node_execution_data2(self, id_execution_id_org, id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, **kwargs): # noqa: E501 - """Fetches input and output data for a :ref:`ref_flyteidl.admin.NodeExecution`. # noqa: E501 + def get_launch_plan(self, id_project, id_domain, id_name, id_version, **kwargs): # noqa: E501 + """Fetch a :ref:`ref_flyteidl.admin.LaunchPlan` definition. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_node_execution_data2(id_execution_id_org, id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, async_req=True) + >>> thread = api.get_launch_plan(id_project, id_domain, id_name, id_version, async_req=True) >>> result = thread.get() :param async_req bool - :param str id_execution_id_org: Optional, org key applied to the resource. (required) - :param str id_execution_id_project: Name of the project the resource belongs to. (required) - :param str id_execution_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_execution_id_name: User or system provided value for the resource. (required) - :param str id_node_id: (required) - :return: AdminNodeExecutionGetDataResponse + :param str id_project: Name of the project the resource belongs to. (required) + :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str id_name: User provided value for the resource. (required) + :param str id_version: Specific version of the resource. (required) + :param str id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects + :param str id_org: Optional, org key applied to the resource. + :return: AdminLaunchPlan If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.get_node_execution_data2_with_http_info(id_execution_id_org, id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, **kwargs) # noqa: E501 + return self.get_launch_plan_with_http_info(id_project, id_domain, id_name, id_version, **kwargs) # noqa: E501 else: - (data) = self.get_node_execution_data2_with_http_info(id_execution_id_org, id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, **kwargs) # noqa: E501 + (data) = self.get_launch_plan_with_http_info(id_project, id_domain, id_name, id_version, **kwargs) # noqa: E501 return data - def get_node_execution_data2_with_http_info(self, id_execution_id_org, id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, **kwargs): # noqa: E501 - """Fetches input and output data for a :ref:`ref_flyteidl.admin.NodeExecution`. # noqa: E501 + def get_launch_plan_with_http_info(self, id_project, id_domain, id_name, id_version, **kwargs): # noqa: E501 + """Fetch a :ref:`ref_flyteidl.admin.LaunchPlan` definition. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_node_execution_data2_with_http_info(id_execution_id_org, id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, async_req=True) + >>> thread = api.get_launch_plan_with_http_info(id_project, id_domain, id_name, id_version, async_req=True) >>> result = thread.get() :param async_req bool - :param str id_execution_id_org: Optional, org key applied to the resource. (required) - :param str id_execution_id_project: Name of the project the resource belongs to. (required) - :param str id_execution_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_execution_id_name: User or system provided value for the resource. (required) - :param str id_node_id: (required) - :return: AdminNodeExecutionGetDataResponse + :param str id_project: Name of the project the resource belongs to. (required) + :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str id_name: User provided value for the resource. (required) + :param str id_version: Specific version of the resource. (required) + :param str id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects + :param str id_org: Optional, org key applied to the resource. + :return: AdminLaunchPlan If the method is called asynchronously, returns the request thread. """ - all_params = ['id_execution_id_org', 'id_execution_id_project', 'id_execution_id_domain', 'id_execution_id_name', 'id_node_id'] # noqa: E501 + all_params = ['id_project', 'id_domain', 'id_name', 'id_version', 'id_resource_type', 'id_org'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -3594,46 +3436,44 @@ def get_node_execution_data2_with_http_info(self, id_execution_id_org, id_execut if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method get_node_execution_data2" % key + " to method get_launch_plan" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'id_execution_id_org' is set - if ('id_execution_id_org' not in params or - params['id_execution_id_org'] is None): - raise ValueError("Missing the required parameter `id_execution_id_org` when calling `get_node_execution_data2`") # noqa: E501 - # verify the required parameter 'id_execution_id_project' is set - if ('id_execution_id_project' not in params or - params['id_execution_id_project'] is None): - raise ValueError("Missing the required parameter `id_execution_id_project` when calling `get_node_execution_data2`") # noqa: E501 - # verify the required parameter 'id_execution_id_domain' is set - if ('id_execution_id_domain' not in params or - params['id_execution_id_domain'] is None): - raise ValueError("Missing the required parameter `id_execution_id_domain` when calling `get_node_execution_data2`") # noqa: E501 - # verify the required parameter 'id_execution_id_name' is set - if ('id_execution_id_name' not in params or - params['id_execution_id_name'] is None): - raise ValueError("Missing the required parameter `id_execution_id_name` when calling `get_node_execution_data2`") # noqa: E501 - # verify the required parameter 'id_node_id' is set - if ('id_node_id' not in params or - params['id_node_id'] is None): - raise ValueError("Missing the required parameter `id_node_id` when calling `get_node_execution_data2`") # noqa: E501 + # verify the required parameter 'id_project' is set + if ('id_project' not in params or + params['id_project'] is None): + raise ValueError("Missing the required parameter `id_project` when calling `get_launch_plan`") # noqa: E501 + # verify the required parameter 'id_domain' is set + if ('id_domain' not in params or + params['id_domain'] is None): + raise ValueError("Missing the required parameter `id_domain` when calling `get_launch_plan`") # noqa: E501 + # verify the required parameter 'id_name' is set + if ('id_name' not in params or + params['id_name'] is None): + raise ValueError("Missing the required parameter `id_name` when calling `get_launch_plan`") # noqa: E501 + # verify the required parameter 'id_version' is set + if ('id_version' not in params or + params['id_version'] is None): + raise ValueError("Missing the required parameter `id_version` when calling `get_launch_plan`") # noqa: E501 collection_formats = {} path_params = {} - if 'id_execution_id_org' in params: - path_params['id.execution_id.org'] = params['id_execution_id_org'] # noqa: E501 - if 'id_execution_id_project' in params: - path_params['id.execution_id.project'] = params['id_execution_id_project'] # noqa: E501 - if 'id_execution_id_domain' in params: - path_params['id.execution_id.domain'] = params['id_execution_id_domain'] # noqa: E501 - if 'id_execution_id_name' in params: - path_params['id.execution_id.name'] = params['id_execution_id_name'] # noqa: E501 - if 'id_node_id' in params: - path_params['id.node_id'] = params['id_node_id'] # noqa: E501 + if 'id_project' in params: + path_params['id.project'] = params['id_project'] # noqa: E501 + if 'id_domain' in params: + path_params['id.domain'] = params['id_domain'] # noqa: E501 + if 'id_name' in params: + path_params['id.name'] = params['id_name'] # noqa: E501 + if 'id_version' in params: + path_params['id.version'] = params['id_version'] # noqa: E501 query_params = [] + if 'id_resource_type' in params: + query_params.append(('id.resource_type', params['id_resource_type'])) # noqa: E501 + if 'id_org' in params: + query_params.append(('id.org', params['id_org'])) # noqa: E501 header_params = {} @@ -3653,14 +3493,14 @@ def get_node_execution_data2_with_http_info(self, id_execution_id_org, id_execut auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/data/node_executions/org/{id.execution_id.org}/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}', 'GET', + '/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminNodeExecutionGetDataResponse', # noqa: E501 + response_type='AdminLaunchPlan', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -3668,47 +3508,53 @@ def get_node_execution_data2_with_http_info(self, id_execution_id_org, id_execut _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def get_project_attributes(self, project, **kwargs): # noqa: E501 - """Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. # noqa: E501 + def get_launch_plan2(self, id_org, id_project, id_domain, id_name, id_version, **kwargs): # noqa: E501 + """Fetch a :ref:`ref_flyteidl.admin.LaunchPlan` definition. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_project_attributes(project, async_req=True) + >>> thread = api.get_launch_plan2(id_org, id_project, id_domain, id_name, id_version, async_req=True) >>> result = thread.get() :param async_req bool - :param str project: Unique project id which this set of attributes references. +required (required) - :param str resource_type: Which type of matchable attributes to return. +required. - TASK_RESOURCE: Applies to customizable task resource requests and limits. - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources. - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment. - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec. - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type. - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides. - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run. - :param str org: Optional, org key applied to the project. - :return: AdminProjectAttributesGetResponse + :param str id_org: Optional, org key applied to the resource. (required) + :param str id_project: Name of the project the resource belongs to. (required) + :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str id_name: User provided value for the resource. (required) + :param str id_version: Specific version of the resource. (required) + :param str id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects + :return: AdminLaunchPlan If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.get_project_attributes_with_http_info(project, **kwargs) # noqa: E501 + return self.get_launch_plan2_with_http_info(id_org, id_project, id_domain, id_name, id_version, **kwargs) # noqa: E501 else: - (data) = self.get_project_attributes_with_http_info(project, **kwargs) # noqa: E501 + (data) = self.get_launch_plan2_with_http_info(id_org, id_project, id_domain, id_name, id_version, **kwargs) # noqa: E501 return data - def get_project_attributes_with_http_info(self, project, **kwargs): # noqa: E501 - """Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. # noqa: E501 + def get_launch_plan2_with_http_info(self, id_org, id_project, id_domain, id_name, id_version, **kwargs): # noqa: E501 + """Fetch a :ref:`ref_flyteidl.admin.LaunchPlan` definition. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_project_attributes_with_http_info(project, async_req=True) + >>> thread = api.get_launch_plan2_with_http_info(id_org, id_project, id_domain, id_name, id_version, async_req=True) >>> result = thread.get() :param async_req bool - :param str project: Unique project id which this set of attributes references. +required (required) - :param str resource_type: Which type of matchable attributes to return. +required. - TASK_RESOURCE: Applies to customizable task resource requests and limits. - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources. - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment. - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec. - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type. - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides. - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run. - :param str org: Optional, org key applied to the project. - :return: AdminProjectAttributesGetResponse + :param str id_org: Optional, org key applied to the resource. (required) + :param str id_project: Name of the project the resource belongs to. (required) + :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str id_name: User provided value for the resource. (required) + :param str id_version: Specific version of the resource. (required) + :param str id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects + :return: AdminLaunchPlan If the method is called asynchronously, returns the request thread. """ - all_params = ['project', 'resource_type', 'org'] # noqa: E501 + all_params = ['id_org', 'id_project', 'id_domain', 'id_name', 'id_version', 'id_resource_type'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -3719,26 +3565,48 @@ def get_project_attributes_with_http_info(self, project, **kwargs): # noqa: E50 if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method get_project_attributes" % key + " to method get_launch_plan2" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'project' is set - if ('project' not in params or - params['project'] is None): - raise ValueError("Missing the required parameter `project` when calling `get_project_attributes`") # noqa: E501 + # verify the required parameter 'id_org' is set + if ('id_org' not in params or + params['id_org'] is None): + raise ValueError("Missing the required parameter `id_org` when calling `get_launch_plan2`") # noqa: E501 + # verify the required parameter 'id_project' is set + if ('id_project' not in params or + params['id_project'] is None): + raise ValueError("Missing the required parameter `id_project` when calling `get_launch_plan2`") # noqa: E501 + # verify the required parameter 'id_domain' is set + if ('id_domain' not in params or + params['id_domain'] is None): + raise ValueError("Missing the required parameter `id_domain` when calling `get_launch_plan2`") # noqa: E501 + # verify the required parameter 'id_name' is set + if ('id_name' not in params or + params['id_name'] is None): + raise ValueError("Missing the required parameter `id_name` when calling `get_launch_plan2`") # noqa: E501 + # verify the required parameter 'id_version' is set + if ('id_version' not in params or + params['id_version'] is None): + raise ValueError("Missing the required parameter `id_version` when calling `get_launch_plan2`") # noqa: E501 collection_formats = {} path_params = {} - if 'project' in params: - path_params['project'] = params['project'] # noqa: E501 + if 'id_org' in params: + path_params['id.org'] = params['id_org'] # noqa: E501 + if 'id_project' in params: + path_params['id.project'] = params['id_project'] # noqa: E501 + if 'id_domain' in params: + path_params['id.domain'] = params['id_domain'] # noqa: E501 + if 'id_name' in params: + path_params['id.name'] = params['id_name'] # noqa: E501 + if 'id_version' in params: + path_params['id.version'] = params['id_version'] # noqa: E501 query_params = [] - if 'resource_type' in params: - query_params.append(('resource_type', params['resource_type'])) # noqa: E501 - if 'org' in params: - query_params.append(('org', params['org'])) # noqa: E501 + if 'id_resource_type' in params: + query_params.append(('id.resource_type', params['id_resource_type'])) # noqa: E501 header_params = {} @@ -3758,14 +3626,14 @@ def get_project_attributes_with_http_info(self, project, **kwargs): # noqa: E50 auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/project_attributes/{project}', 'GET', + '/api/v1/launch_plans/org/{id.org}/{id.project}/{id.domain}/{id.name}/{id.version}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminProjectAttributesGetResponse', # noqa: E501 + response_type='AdminLaunchPlan', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -3773,47 +3641,51 @@ def get_project_attributes_with_http_info(self, project, **kwargs): # noqa: E50 _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def get_project_attributes2(self, org, project, **kwargs): # noqa: E501 - """Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. # noqa: E501 + def get_named_entity(self, resource_type, id_project, id_domain, id_name, **kwargs): # noqa: E501 + """Returns a :ref:`ref_flyteidl.admin.NamedEntity` object. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_project_attributes2(org, project, async_req=True) + >>> thread = api.get_named_entity(resource_type, id_project, id_domain, id_name, async_req=True) >>> result = thread.get() :param async_req bool - :param str org: Optional, org key applied to the project. (required) - :param str project: Unique project id which this set of attributes references. +required (required) - :param str resource_type: Which type of matchable attributes to return. +required. - TASK_RESOURCE: Applies to customizable task resource requests and limits. - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources. - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment. - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec. - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type. - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides. - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run. - :return: AdminProjectAttributesGetResponse + :param str resource_type: Resource type of the metadata to get. One of Task, Workflow or LaunchPlan. +required (required) + :param str id_project: Name of the project the resource belongs to. (required) + :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) + :param str id_org: Optional, org key applied to the resource. + :return: AdminNamedEntity If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.get_project_attributes2_with_http_info(org, project, **kwargs) # noqa: E501 + return self.get_named_entity_with_http_info(resource_type, id_project, id_domain, id_name, **kwargs) # noqa: E501 else: - (data) = self.get_project_attributes2_with_http_info(org, project, **kwargs) # noqa: E501 + (data) = self.get_named_entity_with_http_info(resource_type, id_project, id_domain, id_name, **kwargs) # noqa: E501 return data - def get_project_attributes2_with_http_info(self, org, project, **kwargs): # noqa: E501 - """Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. # noqa: E501 + def get_named_entity_with_http_info(self, resource_type, id_project, id_domain, id_name, **kwargs): # noqa: E501 + """Returns a :ref:`ref_flyteidl.admin.NamedEntity` object. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_project_attributes2_with_http_info(org, project, async_req=True) + >>> thread = api.get_named_entity_with_http_info(resource_type, id_project, id_domain, id_name, async_req=True) >>> result = thread.get() :param async_req bool - :param str org: Optional, org key applied to the project. (required) - :param str project: Unique project id which this set of attributes references. +required (required) - :param str resource_type: Which type of matchable attributes to return. +required. - TASK_RESOURCE: Applies to customizable task resource requests and limits. - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources. - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment. - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec. - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type. - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides. - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run. - :return: AdminProjectAttributesGetResponse + :param str resource_type: Resource type of the metadata to get. One of Task, Workflow or LaunchPlan. +required (required) + :param str id_project: Name of the project the resource belongs to. (required) + :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) + :param str id_org: Optional, org key applied to the resource. + :return: AdminNamedEntity If the method is called asynchronously, returns the request thread. """ - all_params = ['org', 'project', 'resource_type'] # noqa: E501 + all_params = ['resource_type', 'id_project', 'id_domain', 'id_name', 'id_org'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -3824,30 +3696,42 @@ def get_project_attributes2_with_http_info(self, org, project, **kwargs): # noq if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method get_project_attributes2" % key + " to method get_named_entity" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'org' is set - if ('org' not in params or - params['org'] is None): - raise ValueError("Missing the required parameter `org` when calling `get_project_attributes2`") # noqa: E501 - # verify the required parameter 'project' is set - if ('project' not in params or - params['project'] is None): - raise ValueError("Missing the required parameter `project` when calling `get_project_attributes2`") # noqa: E501 - - collection_formats = {} - - path_params = {} - if 'org' in params: - path_params['org'] = params['org'] # noqa: E501 - if 'project' in params: - path_params['project'] = params['project'] # noqa: E501 + # verify the required parameter 'resource_type' is set + if ('resource_type' not in params or + params['resource_type'] is None): + raise ValueError("Missing the required parameter `resource_type` when calling `get_named_entity`") # noqa: E501 + # verify the required parameter 'id_project' is set + if ('id_project' not in params or + params['id_project'] is None): + raise ValueError("Missing the required parameter `id_project` when calling `get_named_entity`") # noqa: E501 + # verify the required parameter 'id_domain' is set + if ('id_domain' not in params or + params['id_domain'] is None): + raise ValueError("Missing the required parameter `id_domain` when calling `get_named_entity`") # noqa: E501 + # verify the required parameter 'id_name' is set + if ('id_name' not in params or + params['id_name'] is None): + raise ValueError("Missing the required parameter `id_name` when calling `get_named_entity`") # noqa: E501 - query_params = [] + collection_formats = {} + + path_params = {} if 'resource_type' in params: - query_params.append(('resource_type', params['resource_type'])) # noqa: E501 + path_params['resource_type'] = params['resource_type'] # noqa: E501 + if 'id_project' in params: + path_params['id.project'] = params['id_project'] # noqa: E501 + if 'id_domain' in params: + path_params['id.domain'] = params['id_domain'] # noqa: E501 + if 'id_name' in params: + path_params['id.name'] = params['id_name'] # noqa: E501 + + query_params = [] + if 'id_org' in params: + query_params.append(('id.org', params['id_org'])) # noqa: E501 header_params = {} @@ -3867,14 +3751,14 @@ def get_project_attributes2_with_http_info(self, org, project, **kwargs): # noq auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/project_domain_attributes/org/{org}/{project}', 'GET', + '/api/v1/named_entities/{resource_type}/{id.project}/{id.domain}/{id.name}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminProjectAttributesGetResponse', # noqa: E501 + response_type='AdminNamedEntity', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -3882,49 +3766,51 @@ def get_project_attributes2_with_http_info(self, org, project, **kwargs): # noq _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def get_project_domain_attributes(self, project, domain, **kwargs): # noqa: E501 - """Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. # noqa: E501 + def get_named_entity2(self, resource_type, id_org, id_project, id_domain, id_name, **kwargs): # noqa: E501 + """Returns a :ref:`ref_flyteidl.admin.NamedEntity` object. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_project_domain_attributes(project, domain, async_req=True) + >>> thread = api.get_named_entity2(resource_type, id_org, id_project, id_domain, id_name, async_req=True) >>> result = thread.get() :param async_req bool - :param str project: Unique project id which this set of attributes references. +required (required) - :param str domain: Unique domain id which this set of attributes references. +required (required) - :param str resource_type: Which type of matchable attributes to return. +required. - TASK_RESOURCE: Applies to customizable task resource requests and limits. - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources. - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment. - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec. - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type. - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides. - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run. - :param str org: Optional, org key applied to the attributes. - :return: AdminProjectDomainAttributesGetResponse + :param str resource_type: Resource type of the metadata to get. One of Task, Workflow or LaunchPlan. +required (required) + :param str id_org: Optional, org key applied to the resource. (required) + :param str id_project: Name of the project the resource belongs to. (required) + :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) + :return: AdminNamedEntity If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.get_project_domain_attributes_with_http_info(project, domain, **kwargs) # noqa: E501 + return self.get_named_entity2_with_http_info(resource_type, id_org, id_project, id_domain, id_name, **kwargs) # noqa: E501 else: - (data) = self.get_project_domain_attributes_with_http_info(project, domain, **kwargs) # noqa: E501 + (data) = self.get_named_entity2_with_http_info(resource_type, id_org, id_project, id_domain, id_name, **kwargs) # noqa: E501 return data - def get_project_domain_attributes_with_http_info(self, project, domain, **kwargs): # noqa: E501 - """Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. # noqa: E501 + def get_named_entity2_with_http_info(self, resource_type, id_org, id_project, id_domain, id_name, **kwargs): # noqa: E501 + """Returns a :ref:`ref_flyteidl.admin.NamedEntity` object. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_project_domain_attributes_with_http_info(project, domain, async_req=True) + >>> thread = api.get_named_entity2_with_http_info(resource_type, id_org, id_project, id_domain, id_name, async_req=True) >>> result = thread.get() :param async_req bool - :param str project: Unique project id which this set of attributes references. +required (required) - :param str domain: Unique domain id which this set of attributes references. +required (required) - :param str resource_type: Which type of matchable attributes to return. +required. - TASK_RESOURCE: Applies to customizable task resource requests and limits. - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources. - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment. - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec. - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type. - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides. - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run. - :param str org: Optional, org key applied to the attributes. - :return: AdminProjectDomainAttributesGetResponse + :param str resource_type: Resource type of the metadata to get. One of Task, Workflow or LaunchPlan. +required (required) + :param str id_org: Optional, org key applied to the resource. (required) + :param str id_project: Name of the project the resource belongs to. (required) + :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) + :return: AdminNamedEntity If the method is called asynchronously, returns the request thread. """ - all_params = ['project', 'domain', 'resource_type', 'org'] # noqa: E501 + all_params = ['resource_type', 'id_org', 'id_project', 'id_domain', 'id_name'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -3935,32 +3821,46 @@ def get_project_domain_attributes_with_http_info(self, project, domain, **kwargs if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method get_project_domain_attributes" % key + " to method get_named_entity2" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'project' is set - if ('project' not in params or - params['project'] is None): - raise ValueError("Missing the required parameter `project` when calling `get_project_domain_attributes`") # noqa: E501 - # verify the required parameter 'domain' is set - if ('domain' not in params or - params['domain'] is None): - raise ValueError("Missing the required parameter `domain` when calling `get_project_domain_attributes`") # noqa: E501 + # verify the required parameter 'resource_type' is set + if ('resource_type' not in params or + params['resource_type'] is None): + raise ValueError("Missing the required parameter `resource_type` when calling `get_named_entity2`") # noqa: E501 + # verify the required parameter 'id_org' is set + if ('id_org' not in params or + params['id_org'] is None): + raise ValueError("Missing the required parameter `id_org` when calling `get_named_entity2`") # noqa: E501 + # verify the required parameter 'id_project' is set + if ('id_project' not in params or + params['id_project'] is None): + raise ValueError("Missing the required parameter `id_project` when calling `get_named_entity2`") # noqa: E501 + # verify the required parameter 'id_domain' is set + if ('id_domain' not in params or + params['id_domain'] is None): + raise ValueError("Missing the required parameter `id_domain` when calling `get_named_entity2`") # noqa: E501 + # verify the required parameter 'id_name' is set + if ('id_name' not in params or + params['id_name'] is None): + raise ValueError("Missing the required parameter `id_name` when calling `get_named_entity2`") # noqa: E501 collection_formats = {} path_params = {} - if 'project' in params: - path_params['project'] = params['project'] # noqa: E501 - if 'domain' in params: - path_params['domain'] = params['domain'] # noqa: E501 + if 'resource_type' in params: + path_params['resource_type'] = params['resource_type'] # noqa: E501 + if 'id_org' in params: + path_params['id.org'] = params['id_org'] # noqa: E501 + if 'id_project' in params: + path_params['id.project'] = params['id_project'] # noqa: E501 + if 'id_domain' in params: + path_params['id.domain'] = params['id_domain'] # noqa: E501 + if 'id_name' in params: + path_params['id.name'] = params['id_name'] # noqa: E501 query_params = [] - if 'resource_type' in params: - query_params.append(('resource_type', params['resource_type'])) # noqa: E501 - if 'org' in params: - query_params.append(('org', params['org'])) # noqa: E501 header_params = {} @@ -3980,14 +3880,14 @@ def get_project_domain_attributes_with_http_info(self, project, domain, **kwargs auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/project_domain_attributes/{project}/{domain}', 'GET', + '/api/v1/named_entities/{resource_type}/org/{id.org}/{id.project}/{id.domain}/{id.name}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminProjectDomainAttributesGetResponse', # noqa: E501 + response_type='AdminNamedEntity', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -3995,49 +3895,51 @@ def get_project_domain_attributes_with_http_info(self, project, domain, **kwargs _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def get_project_domain_attributes2(self, org, project, domain, **kwargs): # noqa: E501 - """Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. # noqa: E501 + def get_node_execution(self, id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, **kwargs): # noqa: E501 + """Fetches a :ref:`ref_flyteidl.admin.NodeExecution`. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_project_domain_attributes2(org, project, domain, async_req=True) + >>> thread = api.get_node_execution(id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, async_req=True) >>> result = thread.get() :param async_req bool - :param str org: Optional, org key applied to the attributes. (required) - :param str project: Unique project id which this set of attributes references. +required (required) - :param str domain: Unique domain id which this set of attributes references. +required (required) - :param str resource_type: Which type of matchable attributes to return. +required. - TASK_RESOURCE: Applies to customizable task resource requests and limits. - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources. - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment. - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec. - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type. - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides. - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run. - :return: AdminProjectDomainAttributesGetResponse + :param str id_execution_id_project: Name of the project the resource belongs to. (required) + :param str id_execution_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str id_execution_id_name: User or system provided value for the resource. (required) + :param str id_node_id: (required) + :param str id_execution_id_org: Optional, org key applied to the resource. + :return: FlyteidladminNodeExecution If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.get_project_domain_attributes2_with_http_info(org, project, domain, **kwargs) # noqa: E501 + return self.get_node_execution_with_http_info(id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, **kwargs) # noqa: E501 else: - (data) = self.get_project_domain_attributes2_with_http_info(org, project, domain, **kwargs) # noqa: E501 + (data) = self.get_node_execution_with_http_info(id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, **kwargs) # noqa: E501 return data - def get_project_domain_attributes2_with_http_info(self, org, project, domain, **kwargs): # noqa: E501 - """Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. # noqa: E501 + def get_node_execution_with_http_info(self, id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, **kwargs): # noqa: E501 + """Fetches a :ref:`ref_flyteidl.admin.NodeExecution`. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_project_domain_attributes2_with_http_info(org, project, domain, async_req=True) + >>> thread = api.get_node_execution_with_http_info(id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, async_req=True) >>> result = thread.get() :param async_req bool - :param str org: Optional, org key applied to the attributes. (required) - :param str project: Unique project id which this set of attributes references. +required (required) - :param str domain: Unique domain id which this set of attributes references. +required (required) - :param str resource_type: Which type of matchable attributes to return. +required. - TASK_RESOURCE: Applies to customizable task resource requests and limits. - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources. - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment. - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec. - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type. - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides. - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run. - :return: AdminProjectDomainAttributesGetResponse + :param str id_execution_id_project: Name of the project the resource belongs to. (required) + :param str id_execution_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str id_execution_id_name: User or system provided value for the resource. (required) + :param str id_node_id: (required) + :param str id_execution_id_org: Optional, org key applied to the resource. + :return: FlyteidladminNodeExecution If the method is called asynchronously, returns the request thread. """ - all_params = ['org', 'project', 'domain', 'resource_type'] # noqa: E501 + all_params = ['id_execution_id_project', 'id_execution_id_domain', 'id_execution_id_name', 'id_node_id', 'id_execution_id_org'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -4048,36 +3950,42 @@ def get_project_domain_attributes2_with_http_info(self, org, project, domain, ** if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method get_project_domain_attributes2" % key + " to method get_node_execution" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'org' is set - if ('org' not in params or - params['org'] is None): - raise ValueError("Missing the required parameter `org` when calling `get_project_domain_attributes2`") # noqa: E501 - # verify the required parameter 'project' is set - if ('project' not in params or - params['project'] is None): - raise ValueError("Missing the required parameter `project` when calling `get_project_domain_attributes2`") # noqa: E501 - # verify the required parameter 'domain' is set - if ('domain' not in params or - params['domain'] is None): - raise ValueError("Missing the required parameter `domain` when calling `get_project_domain_attributes2`") # noqa: E501 + # verify the required parameter 'id_execution_id_project' is set + if ('id_execution_id_project' not in params or + params['id_execution_id_project'] is None): + raise ValueError("Missing the required parameter `id_execution_id_project` when calling `get_node_execution`") # noqa: E501 + # verify the required parameter 'id_execution_id_domain' is set + if ('id_execution_id_domain' not in params or + params['id_execution_id_domain'] is None): + raise ValueError("Missing the required parameter `id_execution_id_domain` when calling `get_node_execution`") # noqa: E501 + # verify the required parameter 'id_execution_id_name' is set + if ('id_execution_id_name' not in params or + params['id_execution_id_name'] is None): + raise ValueError("Missing the required parameter `id_execution_id_name` when calling `get_node_execution`") # noqa: E501 + # verify the required parameter 'id_node_id' is set + if ('id_node_id' not in params or + params['id_node_id'] is None): + raise ValueError("Missing the required parameter `id_node_id` when calling `get_node_execution`") # noqa: E501 collection_formats = {} path_params = {} - if 'org' in params: - path_params['org'] = params['org'] # noqa: E501 - if 'project' in params: - path_params['project'] = params['project'] # noqa: E501 - if 'domain' in params: - path_params['domain'] = params['domain'] # noqa: E501 + if 'id_execution_id_project' in params: + path_params['id.execution_id.project'] = params['id_execution_id_project'] # noqa: E501 + if 'id_execution_id_domain' in params: + path_params['id.execution_id.domain'] = params['id_execution_id_domain'] # noqa: E501 + if 'id_execution_id_name' in params: + path_params['id.execution_id.name'] = params['id_execution_id_name'] # noqa: E501 + if 'id_node_id' in params: + path_params['id.node_id'] = params['id_node_id'] # noqa: E501 query_params = [] - if 'resource_type' in params: - query_params.append(('resource_type', params['resource_type'])) # noqa: E501 + if 'id_execution_id_org' in params: + query_params.append(('id.execution_id.org', params['id_execution_id_org'])) # noqa: E501 header_params = {} @@ -4097,14 +4005,14 @@ def get_project_domain_attributes2_with_http_info(self, org, project, domain, ** auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/project_domain_attributes/org/{org}/{project}/{domain}', 'GET', + '/api/v1/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminProjectDomainAttributesGetResponse', # noqa: E501 + response_type='FlyteidladminNodeExecution', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -4112,53 +4020,51 @@ def get_project_domain_attributes2_with_http_info(self, org, project, domain, ** _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def get_task(self, id_project, id_domain, id_name, id_version, **kwargs): # noqa: E501 - """Fetch a :ref:`ref_flyteidl.admin.Task` definition. # noqa: E501 + def get_node_execution2(self, id_execution_id_org, id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, **kwargs): # noqa: E501 + """Fetches a :ref:`ref_flyteidl.admin.NodeExecution`. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_task(id_project, id_domain, id_name, id_version, async_req=True) + >>> thread = api.get_node_execution2(id_execution_id_org, id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, async_req=True) >>> result = thread.get() :param async_req bool - :param str id_project: Name of the project the resource belongs to. (required) - :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_name: User provided value for the resource. (required) - :param str id_version: Specific version of the resource. (required) - :param str id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects - :param str id_org: Optional, org key applied to the resource. - :return: AdminTask + :param str id_execution_id_org: Optional, org key applied to the resource. (required) + :param str id_execution_id_project: Name of the project the resource belongs to. (required) + :param str id_execution_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str id_execution_id_name: User or system provided value for the resource. (required) + :param str id_node_id: (required) + :return: FlyteidladminNodeExecution If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.get_task_with_http_info(id_project, id_domain, id_name, id_version, **kwargs) # noqa: E501 + return self.get_node_execution2_with_http_info(id_execution_id_org, id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, **kwargs) # noqa: E501 else: - (data) = self.get_task_with_http_info(id_project, id_domain, id_name, id_version, **kwargs) # noqa: E501 + (data) = self.get_node_execution2_with_http_info(id_execution_id_org, id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, **kwargs) # noqa: E501 return data - def get_task_with_http_info(self, id_project, id_domain, id_name, id_version, **kwargs): # noqa: E501 - """Fetch a :ref:`ref_flyteidl.admin.Task` definition. # noqa: E501 + def get_node_execution2_with_http_info(self, id_execution_id_org, id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, **kwargs): # noqa: E501 + """Fetches a :ref:`ref_flyteidl.admin.NodeExecution`. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_task_with_http_info(id_project, id_domain, id_name, id_version, async_req=True) + >>> thread = api.get_node_execution2_with_http_info(id_execution_id_org, id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, async_req=True) >>> result = thread.get() :param async_req bool - :param str id_project: Name of the project the resource belongs to. (required) - :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_name: User provided value for the resource. (required) - :param str id_version: Specific version of the resource. (required) - :param str id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects - :param str id_org: Optional, org key applied to the resource. - :return: AdminTask + :param str id_execution_id_org: Optional, org key applied to the resource. (required) + :param str id_execution_id_project: Name of the project the resource belongs to. (required) + :param str id_execution_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str id_execution_id_name: User or system provided value for the resource. (required) + :param str id_node_id: (required) + :return: FlyteidladminNodeExecution If the method is called asynchronously, returns the request thread. """ - all_params = ['id_project', 'id_domain', 'id_name', 'id_version', 'id_resource_type', 'id_org'] # noqa: E501 + all_params = ['id_execution_id_org', 'id_execution_id_project', 'id_execution_id_domain', 'id_execution_id_name', 'id_node_id'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -4169,44 +4075,46 @@ def get_task_with_http_info(self, id_project, id_domain, id_name, id_version, ** if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method get_task" % key + " to method get_node_execution2" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'id_project' is set - if ('id_project' not in params or - params['id_project'] is None): - raise ValueError("Missing the required parameter `id_project` when calling `get_task`") # noqa: E501 - # verify the required parameter 'id_domain' is set - if ('id_domain' not in params or - params['id_domain'] is None): - raise ValueError("Missing the required parameter `id_domain` when calling `get_task`") # noqa: E501 - # verify the required parameter 'id_name' is set - if ('id_name' not in params or - params['id_name'] is None): - raise ValueError("Missing the required parameter `id_name` when calling `get_task`") # noqa: E501 - # verify the required parameter 'id_version' is set - if ('id_version' not in params or - params['id_version'] is None): - raise ValueError("Missing the required parameter `id_version` when calling `get_task`") # noqa: E501 + # verify the required parameter 'id_execution_id_org' is set + if ('id_execution_id_org' not in params or + params['id_execution_id_org'] is None): + raise ValueError("Missing the required parameter `id_execution_id_org` when calling `get_node_execution2`") # noqa: E501 + # verify the required parameter 'id_execution_id_project' is set + if ('id_execution_id_project' not in params or + params['id_execution_id_project'] is None): + raise ValueError("Missing the required parameter `id_execution_id_project` when calling `get_node_execution2`") # noqa: E501 + # verify the required parameter 'id_execution_id_domain' is set + if ('id_execution_id_domain' not in params or + params['id_execution_id_domain'] is None): + raise ValueError("Missing the required parameter `id_execution_id_domain` when calling `get_node_execution2`") # noqa: E501 + # verify the required parameter 'id_execution_id_name' is set + if ('id_execution_id_name' not in params or + params['id_execution_id_name'] is None): + raise ValueError("Missing the required parameter `id_execution_id_name` when calling `get_node_execution2`") # noqa: E501 + # verify the required parameter 'id_node_id' is set + if ('id_node_id' not in params or + params['id_node_id'] is None): + raise ValueError("Missing the required parameter `id_node_id` when calling `get_node_execution2`") # noqa: E501 collection_formats = {} path_params = {} - if 'id_project' in params: - path_params['id.project'] = params['id_project'] # noqa: E501 - if 'id_domain' in params: - path_params['id.domain'] = params['id_domain'] # noqa: E501 - if 'id_name' in params: - path_params['id.name'] = params['id_name'] # noqa: E501 - if 'id_version' in params: - path_params['id.version'] = params['id_version'] # noqa: E501 + if 'id_execution_id_org' in params: + path_params['id.execution_id.org'] = params['id_execution_id_org'] # noqa: E501 + if 'id_execution_id_project' in params: + path_params['id.execution_id.project'] = params['id_execution_id_project'] # noqa: E501 + if 'id_execution_id_domain' in params: + path_params['id.execution_id.domain'] = params['id_execution_id_domain'] # noqa: E501 + if 'id_execution_id_name' in params: + path_params['id.execution_id.name'] = params['id_execution_id_name'] # noqa: E501 + if 'id_node_id' in params: + path_params['id.node_id'] = params['id_node_id'] # noqa: E501 query_params = [] - if 'id_resource_type' in params: - query_params.append(('id.resource_type', params['id_resource_type'])) # noqa: E501 - if 'id_org' in params: - query_params.append(('id.org', params['id_org'])) # noqa: E501 header_params = {} @@ -4226,14 +4134,14 @@ def get_task_with_http_info(self, id_project, id_domain, id_name, id_version, ** auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/tasks/{id.project}/{id.domain}/{id.name}/{id.version}', 'GET', + '/api/v1/node_executions/org/{id.execution_id.org}/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminTask', # noqa: E501 + response_type='FlyteidladminNodeExecution', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -4241,53 +4149,51 @@ def get_task_with_http_info(self, id_project, id_domain, id_name, id_version, ** _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def get_task2(self, id_org, id_project, id_domain, id_name, id_version, **kwargs): # noqa: E501 - """Fetch a :ref:`ref_flyteidl.admin.Task` definition. # noqa: E501 + def get_node_execution_data(self, id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, **kwargs): # noqa: E501 + """Fetches input and output data for a :ref:`ref_flyteidl.admin.NodeExecution`. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_task2(id_org, id_project, id_domain, id_name, id_version, async_req=True) + >>> thread = api.get_node_execution_data(id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, async_req=True) >>> result = thread.get() :param async_req bool - :param str id_org: Optional, org key applied to the resource. (required) - :param str id_project: Name of the project the resource belongs to. (required) - :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_name: User provided value for the resource. (required) - :param str id_version: Specific version of the resource. (required) - :param str id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects - :return: AdminTask + :param str id_execution_id_project: Name of the project the resource belongs to. (required) + :param str id_execution_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str id_execution_id_name: User or system provided value for the resource. (required) + :param str id_node_id: (required) + :param str id_execution_id_org: Optional, org key applied to the resource. + :return: AdminNodeExecutionGetDataResponse If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.get_task2_with_http_info(id_org, id_project, id_domain, id_name, id_version, **kwargs) # noqa: E501 + return self.get_node_execution_data_with_http_info(id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, **kwargs) # noqa: E501 else: - (data) = self.get_task2_with_http_info(id_org, id_project, id_domain, id_name, id_version, **kwargs) # noqa: E501 + (data) = self.get_node_execution_data_with_http_info(id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, **kwargs) # noqa: E501 return data - def get_task2_with_http_info(self, id_org, id_project, id_domain, id_name, id_version, **kwargs): # noqa: E501 - """Fetch a :ref:`ref_flyteidl.admin.Task` definition. # noqa: E501 + def get_node_execution_data_with_http_info(self, id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, **kwargs): # noqa: E501 + """Fetches input and output data for a :ref:`ref_flyteidl.admin.NodeExecution`. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_task2_with_http_info(id_org, id_project, id_domain, id_name, id_version, async_req=True) + >>> thread = api.get_node_execution_data_with_http_info(id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, async_req=True) >>> result = thread.get() :param async_req bool - :param str id_org: Optional, org key applied to the resource. (required) - :param str id_project: Name of the project the resource belongs to. (required) - :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_name: User provided value for the resource. (required) - :param str id_version: Specific version of the resource. (required) - :param str id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects - :return: AdminTask + :param str id_execution_id_project: Name of the project the resource belongs to. (required) + :param str id_execution_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str id_execution_id_name: User or system provided value for the resource. (required) + :param str id_node_id: (required) + :param str id_execution_id_org: Optional, org key applied to the resource. + :return: AdminNodeExecutionGetDataResponse If the method is called asynchronously, returns the request thread. """ - all_params = ['id_org', 'id_project', 'id_domain', 'id_name', 'id_version', 'id_resource_type'] # noqa: E501 + all_params = ['id_execution_id_project', 'id_execution_id_domain', 'id_execution_id_name', 'id_node_id', 'id_execution_id_org'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -4298,48 +4204,42 @@ def get_task2_with_http_info(self, id_org, id_project, id_domain, id_name, id_ve if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method get_task2" % key + " to method get_node_execution_data" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'id_org' is set - if ('id_org' not in params or - params['id_org'] is None): - raise ValueError("Missing the required parameter `id_org` when calling `get_task2`") # noqa: E501 - # verify the required parameter 'id_project' is set - if ('id_project' not in params or - params['id_project'] is None): - raise ValueError("Missing the required parameter `id_project` when calling `get_task2`") # noqa: E501 - # verify the required parameter 'id_domain' is set - if ('id_domain' not in params or - params['id_domain'] is None): - raise ValueError("Missing the required parameter `id_domain` when calling `get_task2`") # noqa: E501 - # verify the required parameter 'id_name' is set - if ('id_name' not in params or - params['id_name'] is None): - raise ValueError("Missing the required parameter `id_name` when calling `get_task2`") # noqa: E501 - # verify the required parameter 'id_version' is set - if ('id_version' not in params or - params['id_version'] is None): - raise ValueError("Missing the required parameter `id_version` when calling `get_task2`") # noqa: E501 + # verify the required parameter 'id_execution_id_project' is set + if ('id_execution_id_project' not in params or + params['id_execution_id_project'] is None): + raise ValueError("Missing the required parameter `id_execution_id_project` when calling `get_node_execution_data`") # noqa: E501 + # verify the required parameter 'id_execution_id_domain' is set + if ('id_execution_id_domain' not in params or + params['id_execution_id_domain'] is None): + raise ValueError("Missing the required parameter `id_execution_id_domain` when calling `get_node_execution_data`") # noqa: E501 + # verify the required parameter 'id_execution_id_name' is set + if ('id_execution_id_name' not in params or + params['id_execution_id_name'] is None): + raise ValueError("Missing the required parameter `id_execution_id_name` when calling `get_node_execution_data`") # noqa: E501 + # verify the required parameter 'id_node_id' is set + if ('id_node_id' not in params or + params['id_node_id'] is None): + raise ValueError("Missing the required parameter `id_node_id` when calling `get_node_execution_data`") # noqa: E501 collection_formats = {} path_params = {} - if 'id_org' in params: - path_params['id.org'] = params['id_org'] # noqa: E501 - if 'id_project' in params: - path_params['id.project'] = params['id_project'] # noqa: E501 - if 'id_domain' in params: - path_params['id.domain'] = params['id_domain'] # noqa: E501 - if 'id_name' in params: - path_params['id.name'] = params['id_name'] # noqa: E501 - if 'id_version' in params: - path_params['id.version'] = params['id_version'] # noqa: E501 + if 'id_execution_id_project' in params: + path_params['id.execution_id.project'] = params['id_execution_id_project'] # noqa: E501 + if 'id_execution_id_domain' in params: + path_params['id.execution_id.domain'] = params['id_execution_id_domain'] # noqa: E501 + if 'id_execution_id_name' in params: + path_params['id.execution_id.name'] = params['id_execution_id_name'] # noqa: E501 + if 'id_node_id' in params: + path_params['id.node_id'] = params['id_node_id'] # noqa: E501 query_params = [] - if 'id_resource_type' in params: - query_params.append(('id.resource_type', params['id_resource_type'])) # noqa: E501 + if 'id_execution_id_org' in params: + query_params.append(('id.execution_id.org', params['id_execution_id_org'])) # noqa: E501 header_params = {} @@ -4359,14 +4259,14 @@ def get_task2_with_http_info(self, id_org, id_project, id_domain, id_name, id_ve auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/tasks/org/{id.org}/{id.project}/{id.domain}/{id.name}/{id.version}', 'GET', + '/api/v1/data/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminTask', # noqa: E501 + response_type='AdminNodeExecutionGetDataResponse', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -4374,65 +4274,51 @@ def get_task2_with_http_info(self, id_org, id_project, id_domain, id_name, id_ve _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def get_task_execution(self, id_node_execution_id_execution_id_project, id_node_execution_id_execution_id_domain, id_node_execution_id_execution_id_name, id_node_execution_id_node_id, id_task_id_project, id_task_id_domain, id_task_id_name, id_task_id_version, id_retry_attempt, **kwargs): # noqa: E501 - """Fetches a :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 + def get_node_execution_data2(self, id_execution_id_org, id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, **kwargs): # noqa: E501 + """Fetches input and output data for a :ref:`ref_flyteidl.admin.NodeExecution`. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_task_execution(id_node_execution_id_execution_id_project, id_node_execution_id_execution_id_domain, id_node_execution_id_execution_id_name, id_node_execution_id_node_id, id_task_id_project, id_task_id_domain, id_task_id_name, id_task_id_version, id_retry_attempt, async_req=True) + >>> thread = api.get_node_execution_data2(id_execution_id_org, id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, async_req=True) >>> result = thread.get() :param async_req bool - :param str id_node_execution_id_execution_id_project: Name of the project the resource belongs to. (required) - :param str id_node_execution_id_execution_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_node_execution_id_execution_id_name: User or system provided value for the resource. (required) - :param str id_node_execution_id_node_id: (required) - :param str id_task_id_project: Name of the project the resource belongs to. (required) - :param str id_task_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_task_id_name: User provided value for the resource. (required) - :param str id_task_id_version: Specific version of the resource. (required) - :param int id_retry_attempt: (required) - :param str id_task_id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects - :param str id_task_id_org: Optional, org key applied to the resource. - :param str id_node_execution_id_execution_id_org: Optional, org key applied to the resource. - :return: FlyteidladminTaskExecution + :param str id_execution_id_org: Optional, org key applied to the resource. (required) + :param str id_execution_id_project: Name of the project the resource belongs to. (required) + :param str id_execution_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str id_execution_id_name: User or system provided value for the resource. (required) + :param str id_node_id: (required) + :return: AdminNodeExecutionGetDataResponse If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.get_task_execution_with_http_info(id_node_execution_id_execution_id_project, id_node_execution_id_execution_id_domain, id_node_execution_id_execution_id_name, id_node_execution_id_node_id, id_task_id_project, id_task_id_domain, id_task_id_name, id_task_id_version, id_retry_attempt, **kwargs) # noqa: E501 + return self.get_node_execution_data2_with_http_info(id_execution_id_org, id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, **kwargs) # noqa: E501 else: - (data) = self.get_task_execution_with_http_info(id_node_execution_id_execution_id_project, id_node_execution_id_execution_id_domain, id_node_execution_id_execution_id_name, id_node_execution_id_node_id, id_task_id_project, id_task_id_domain, id_task_id_name, id_task_id_version, id_retry_attempt, **kwargs) # noqa: E501 + (data) = self.get_node_execution_data2_with_http_info(id_execution_id_org, id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, **kwargs) # noqa: E501 return data - def get_task_execution_with_http_info(self, id_node_execution_id_execution_id_project, id_node_execution_id_execution_id_domain, id_node_execution_id_execution_id_name, id_node_execution_id_node_id, id_task_id_project, id_task_id_domain, id_task_id_name, id_task_id_version, id_retry_attempt, **kwargs): # noqa: E501 - """Fetches a :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 + def get_node_execution_data2_with_http_info(self, id_execution_id_org, id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, **kwargs): # noqa: E501 + """Fetches input and output data for a :ref:`ref_flyteidl.admin.NodeExecution`. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_task_execution_with_http_info(id_node_execution_id_execution_id_project, id_node_execution_id_execution_id_domain, id_node_execution_id_execution_id_name, id_node_execution_id_node_id, id_task_id_project, id_task_id_domain, id_task_id_name, id_task_id_version, id_retry_attempt, async_req=True) + >>> thread = api.get_node_execution_data2_with_http_info(id_execution_id_org, id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, async_req=True) >>> result = thread.get() :param async_req bool - :param str id_node_execution_id_execution_id_project: Name of the project the resource belongs to. (required) - :param str id_node_execution_id_execution_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_node_execution_id_execution_id_name: User or system provided value for the resource. (required) - :param str id_node_execution_id_node_id: (required) - :param str id_task_id_project: Name of the project the resource belongs to. (required) - :param str id_task_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_task_id_name: User provided value for the resource. (required) - :param str id_task_id_version: Specific version of the resource. (required) - :param int id_retry_attempt: (required) - :param str id_task_id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects - :param str id_task_id_org: Optional, org key applied to the resource. - :param str id_node_execution_id_execution_id_org: Optional, org key applied to the resource. - :return: FlyteidladminTaskExecution + :param str id_execution_id_org: Optional, org key applied to the resource. (required) + :param str id_execution_id_project: Name of the project the resource belongs to. (required) + :param str id_execution_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str id_execution_id_name: User or system provided value for the resource. (required) + :param str id_node_id: (required) + :return: AdminNodeExecutionGetDataResponse If the method is called asynchronously, returns the request thread. """ - all_params = ['id_node_execution_id_execution_id_project', 'id_node_execution_id_execution_id_domain', 'id_node_execution_id_execution_id_name', 'id_node_execution_id_node_id', 'id_task_id_project', 'id_task_id_domain', 'id_task_id_name', 'id_task_id_version', 'id_retry_attempt', 'id_task_id_resource_type', 'id_task_id_org', 'id_node_execution_id_execution_id_org'] # noqa: E501 + all_params = ['id_execution_id_org', 'id_execution_id_project', 'id_execution_id_domain', 'id_execution_id_name', 'id_node_id'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -4443,76 +4329,1803 @@ def get_task_execution_with_http_info(self, id_node_execution_id_execution_id_pr if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method get_task_execution" % key + " to method get_node_execution_data2" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'id_node_execution_id_execution_id_project' is set - if ('id_node_execution_id_execution_id_project' not in params or - params['id_node_execution_id_execution_id_project'] is None): - raise ValueError("Missing the required parameter `id_node_execution_id_execution_id_project` when calling `get_task_execution`") # noqa: E501 - # verify the required parameter 'id_node_execution_id_execution_id_domain' is set - if ('id_node_execution_id_execution_id_domain' not in params or - params['id_node_execution_id_execution_id_domain'] is None): - raise ValueError("Missing the required parameter `id_node_execution_id_execution_id_domain` when calling `get_task_execution`") # noqa: E501 - # verify the required parameter 'id_node_execution_id_execution_id_name' is set - if ('id_node_execution_id_execution_id_name' not in params or - params['id_node_execution_id_execution_id_name'] is None): - raise ValueError("Missing the required parameter `id_node_execution_id_execution_id_name` when calling `get_task_execution`") # noqa: E501 - # verify the required parameter 'id_node_execution_id_node_id' is set - if ('id_node_execution_id_node_id' not in params or + # verify the required parameter 'id_execution_id_org' is set + if ('id_execution_id_org' not in params or + params['id_execution_id_org'] is None): + raise ValueError("Missing the required parameter `id_execution_id_org` when calling `get_node_execution_data2`") # noqa: E501 + # verify the required parameter 'id_execution_id_project' is set + if ('id_execution_id_project' not in params or + params['id_execution_id_project'] is None): + raise ValueError("Missing the required parameter `id_execution_id_project` when calling `get_node_execution_data2`") # noqa: E501 + # verify the required parameter 'id_execution_id_domain' is set + if ('id_execution_id_domain' not in params or + params['id_execution_id_domain'] is None): + raise ValueError("Missing the required parameter `id_execution_id_domain` when calling `get_node_execution_data2`") # noqa: E501 + # verify the required parameter 'id_execution_id_name' is set + if ('id_execution_id_name' not in params or + params['id_execution_id_name'] is None): + raise ValueError("Missing the required parameter `id_execution_id_name` when calling `get_node_execution_data2`") # noqa: E501 + # verify the required parameter 'id_node_id' is set + if ('id_node_id' not in params or + params['id_node_id'] is None): + raise ValueError("Missing the required parameter `id_node_id` when calling `get_node_execution_data2`") # noqa: E501 + + collection_formats = {} + + path_params = {} + if 'id_execution_id_org' in params: + path_params['id.execution_id.org'] = params['id_execution_id_org'] # noqa: E501 + if 'id_execution_id_project' in params: + path_params['id.execution_id.project'] = params['id_execution_id_project'] # noqa: E501 + if 'id_execution_id_domain' in params: + path_params['id.execution_id.domain'] = params['id_execution_id_domain'] # noqa: E501 + if 'id_execution_id_name' in params: + path_params['id.execution_id.name'] = params['id_execution_id_name'] # noqa: E501 + if 'id_node_id' in params: + path_params['id.node_id'] = params['id_node_id'] # noqa: E501 + + query_params = [] + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/json']) # noqa: E501 + + # Authentication setting + auth_settings = [] # noqa: E501 + + return self.api_client.call_api( + '/api/v1/data/node_executions/org/{id.execution_id.org}/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='AdminNodeExecutionGetDataResponse', # noqa: E501 + auth_settings=auth_settings, + async_req=params.get('async_req'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def get_project_attributes(self, project, **kwargs): # noqa: E501 + """Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_project_attributes(project, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str project: Unique project id which this set of attributes references. +required (required) + :param str resource_type: Which type of matchable attributes to return. +required. - TASK_RESOURCE: Applies to customizable task resource requests and limits. - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources. - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment. - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec. - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type. - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides. - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run. + :param str org: Optional, org key applied to the project. + :return: AdminProjectAttributesGetResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + if kwargs.get('async_req'): + return self.get_project_attributes_with_http_info(project, **kwargs) # noqa: E501 + else: + (data) = self.get_project_attributes_with_http_info(project, **kwargs) # noqa: E501 + return data + + def get_project_attributes_with_http_info(self, project, **kwargs): # noqa: E501 + """Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_project_attributes_with_http_info(project, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str project: Unique project id which this set of attributes references. +required (required) + :param str resource_type: Which type of matchable attributes to return. +required. - TASK_RESOURCE: Applies to customizable task resource requests and limits. - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources. - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment. - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec. - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type. - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides. - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run. + :param str org: Optional, org key applied to the project. + :return: AdminProjectAttributesGetResponse + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['project', 'resource_type', 'org'] # noqa: E501 + all_params.append('async_req') + all_params.append('_return_http_data_only') + all_params.append('_preload_content') + all_params.append('_request_timeout') + + params = locals() + for key, val in six.iteritems(params['kwargs']): + if key not in all_params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_project_attributes" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'project' is set + if ('project' not in params or + params['project'] is None): + raise ValueError("Missing the required parameter `project` when calling `get_project_attributes`") # noqa: E501 + + collection_formats = {} + + path_params = {} + if 'project' in params: + path_params['project'] = params['project'] # noqa: E501 + + query_params = [] + if 'resource_type' in params: + query_params.append(('resource_type', params['resource_type'])) # noqa: E501 + if 'org' in params: + query_params.append(('org', params['org'])) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/json']) # noqa: E501 + + # Authentication setting + auth_settings = [] # noqa: E501 + + return self.api_client.call_api( + '/api/v1/project_attributes/{project}', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='AdminProjectAttributesGetResponse', # noqa: E501 + auth_settings=auth_settings, + async_req=params.get('async_req'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def get_project_attributes2(self, org, project, **kwargs): # noqa: E501 + """Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_project_attributes2(org, project, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str org: Optional, org key applied to the project. (required) + :param str project: Unique project id which this set of attributes references. +required (required) + :param str resource_type: Which type of matchable attributes to return. +required. - TASK_RESOURCE: Applies to customizable task resource requests and limits. - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources. - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment. - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec. - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type. - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides. - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run. + :return: AdminProjectAttributesGetResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + if kwargs.get('async_req'): + return self.get_project_attributes2_with_http_info(org, project, **kwargs) # noqa: E501 + else: + (data) = self.get_project_attributes2_with_http_info(org, project, **kwargs) # noqa: E501 + return data + + def get_project_attributes2_with_http_info(self, org, project, **kwargs): # noqa: E501 + """Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_project_attributes2_with_http_info(org, project, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str org: Optional, org key applied to the project. (required) + :param str project: Unique project id which this set of attributes references. +required (required) + :param str resource_type: Which type of matchable attributes to return. +required. - TASK_RESOURCE: Applies to customizable task resource requests and limits. - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources. - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment. - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec. - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type. - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides. - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run. + :return: AdminProjectAttributesGetResponse + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['org', 'project', 'resource_type'] # noqa: E501 + all_params.append('async_req') + all_params.append('_return_http_data_only') + all_params.append('_preload_content') + all_params.append('_request_timeout') + + params = locals() + for key, val in six.iteritems(params['kwargs']): + if key not in all_params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_project_attributes2" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'org' is set + if ('org' not in params or + params['org'] is None): + raise ValueError("Missing the required parameter `org` when calling `get_project_attributes2`") # noqa: E501 + # verify the required parameter 'project' is set + if ('project' not in params or + params['project'] is None): + raise ValueError("Missing the required parameter `project` when calling `get_project_attributes2`") # noqa: E501 + + collection_formats = {} + + path_params = {} + if 'org' in params: + path_params['org'] = params['org'] # noqa: E501 + if 'project' in params: + path_params['project'] = params['project'] # noqa: E501 + + query_params = [] + if 'resource_type' in params: + query_params.append(('resource_type', params['resource_type'])) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/json']) # noqa: E501 + + # Authentication setting + auth_settings = [] # noqa: E501 + + return self.api_client.call_api( + '/api/v1/project_domain_attributes/org/{org}/{project}', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='AdminProjectAttributesGetResponse', # noqa: E501 + auth_settings=auth_settings, + async_req=params.get('async_req'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def get_project_domain_attributes(self, project, domain, **kwargs): # noqa: E501 + """Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_project_domain_attributes(project, domain, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str project: Unique project id which this set of attributes references. +required (required) + :param str domain: Unique domain id which this set of attributes references. +required (required) + :param str resource_type: Which type of matchable attributes to return. +required. - TASK_RESOURCE: Applies to customizable task resource requests and limits. - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources. - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment. - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec. - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type. - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides. - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run. + :param str org: Optional, org key applied to the attributes. + :return: AdminProjectDomainAttributesGetResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + if kwargs.get('async_req'): + return self.get_project_domain_attributes_with_http_info(project, domain, **kwargs) # noqa: E501 + else: + (data) = self.get_project_domain_attributes_with_http_info(project, domain, **kwargs) # noqa: E501 + return data + + def get_project_domain_attributes_with_http_info(self, project, domain, **kwargs): # noqa: E501 + """Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_project_domain_attributes_with_http_info(project, domain, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str project: Unique project id which this set of attributes references. +required (required) + :param str domain: Unique domain id which this set of attributes references. +required (required) + :param str resource_type: Which type of matchable attributes to return. +required. - TASK_RESOURCE: Applies to customizable task resource requests and limits. - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources. - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment. - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec. - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type. - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides. - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run. + :param str org: Optional, org key applied to the attributes. + :return: AdminProjectDomainAttributesGetResponse + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['project', 'domain', 'resource_type', 'org'] # noqa: E501 + all_params.append('async_req') + all_params.append('_return_http_data_only') + all_params.append('_preload_content') + all_params.append('_request_timeout') + + params = locals() + for key, val in six.iteritems(params['kwargs']): + if key not in all_params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_project_domain_attributes" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'project' is set + if ('project' not in params or + params['project'] is None): + raise ValueError("Missing the required parameter `project` when calling `get_project_domain_attributes`") # noqa: E501 + # verify the required parameter 'domain' is set + if ('domain' not in params or + params['domain'] is None): + raise ValueError("Missing the required parameter `domain` when calling `get_project_domain_attributes`") # noqa: E501 + + collection_formats = {} + + path_params = {} + if 'project' in params: + path_params['project'] = params['project'] # noqa: E501 + if 'domain' in params: + path_params['domain'] = params['domain'] # noqa: E501 + + query_params = [] + if 'resource_type' in params: + query_params.append(('resource_type', params['resource_type'])) # noqa: E501 + if 'org' in params: + query_params.append(('org', params['org'])) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/json']) # noqa: E501 + + # Authentication setting + auth_settings = [] # noqa: E501 + + return self.api_client.call_api( + '/api/v1/project_domain_attributes/{project}/{domain}', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='AdminProjectDomainAttributesGetResponse', # noqa: E501 + auth_settings=auth_settings, + async_req=params.get('async_req'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def get_project_domain_attributes2(self, org, project, domain, **kwargs): # noqa: E501 + """Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_project_domain_attributes2(org, project, domain, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str org: Optional, org key applied to the attributes. (required) + :param str project: Unique project id which this set of attributes references. +required (required) + :param str domain: Unique domain id which this set of attributes references. +required (required) + :param str resource_type: Which type of matchable attributes to return. +required. - TASK_RESOURCE: Applies to customizable task resource requests and limits. - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources. - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment. - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec. - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type. - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides. - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run. + :return: AdminProjectDomainAttributesGetResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + if kwargs.get('async_req'): + return self.get_project_domain_attributes2_with_http_info(org, project, domain, **kwargs) # noqa: E501 + else: + (data) = self.get_project_domain_attributes2_with_http_info(org, project, domain, **kwargs) # noqa: E501 + return data + + def get_project_domain_attributes2_with_http_info(self, org, project, domain, **kwargs): # noqa: E501 + """Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_project_domain_attributes2_with_http_info(org, project, domain, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str org: Optional, org key applied to the attributes. (required) + :param str project: Unique project id which this set of attributes references. +required (required) + :param str domain: Unique domain id which this set of attributes references. +required (required) + :param str resource_type: Which type of matchable attributes to return. +required. - TASK_RESOURCE: Applies to customizable task resource requests and limits. - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources. - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment. - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec. - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type. - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides. - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run. + :return: AdminProjectDomainAttributesGetResponse + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['org', 'project', 'domain', 'resource_type'] # noqa: E501 + all_params.append('async_req') + all_params.append('_return_http_data_only') + all_params.append('_preload_content') + all_params.append('_request_timeout') + + params = locals() + for key, val in six.iteritems(params['kwargs']): + if key not in all_params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_project_domain_attributes2" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'org' is set + if ('org' not in params or + params['org'] is None): + raise ValueError("Missing the required parameter `org` when calling `get_project_domain_attributes2`") # noqa: E501 + # verify the required parameter 'project' is set + if ('project' not in params or + params['project'] is None): + raise ValueError("Missing the required parameter `project` when calling `get_project_domain_attributes2`") # noqa: E501 + # verify the required parameter 'domain' is set + if ('domain' not in params or + params['domain'] is None): + raise ValueError("Missing the required parameter `domain` when calling `get_project_domain_attributes2`") # noqa: E501 + + collection_formats = {} + + path_params = {} + if 'org' in params: + path_params['org'] = params['org'] # noqa: E501 + if 'project' in params: + path_params['project'] = params['project'] # noqa: E501 + if 'domain' in params: + path_params['domain'] = params['domain'] # noqa: E501 + + query_params = [] + if 'resource_type' in params: + query_params.append(('resource_type', params['resource_type'])) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/json']) # noqa: E501 + + # Authentication setting + auth_settings = [] # noqa: E501 + + return self.api_client.call_api( + '/api/v1/project_domain_attributes/org/{org}/{project}/{domain}', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='AdminProjectDomainAttributesGetResponse', # noqa: E501 + auth_settings=auth_settings, + async_req=params.get('async_req'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def get_task(self, id_project, id_domain, id_name, id_version, **kwargs): # noqa: E501 + """Fetch a :ref:`ref_flyteidl.admin.Task` definition. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_task(id_project, id_domain, id_name, id_version, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str id_project: Name of the project the resource belongs to. (required) + :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str id_name: User provided value for the resource. (required) + :param str id_version: Specific version of the resource. (required) + :param str id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects + :param str id_org: Optional, org key applied to the resource. + :return: AdminTask + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + if kwargs.get('async_req'): + return self.get_task_with_http_info(id_project, id_domain, id_name, id_version, **kwargs) # noqa: E501 + else: + (data) = self.get_task_with_http_info(id_project, id_domain, id_name, id_version, **kwargs) # noqa: E501 + return data + + def get_task_with_http_info(self, id_project, id_domain, id_name, id_version, **kwargs): # noqa: E501 + """Fetch a :ref:`ref_flyteidl.admin.Task` definition. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_task_with_http_info(id_project, id_domain, id_name, id_version, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str id_project: Name of the project the resource belongs to. (required) + :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str id_name: User provided value for the resource. (required) + :param str id_version: Specific version of the resource. (required) + :param str id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects + :param str id_org: Optional, org key applied to the resource. + :return: AdminTask + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['id_project', 'id_domain', 'id_name', 'id_version', 'id_resource_type', 'id_org'] # noqa: E501 + all_params.append('async_req') + all_params.append('_return_http_data_only') + all_params.append('_preload_content') + all_params.append('_request_timeout') + + params = locals() + for key, val in six.iteritems(params['kwargs']): + if key not in all_params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_task" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'id_project' is set + if ('id_project' not in params or + params['id_project'] is None): + raise ValueError("Missing the required parameter `id_project` when calling `get_task`") # noqa: E501 + # verify the required parameter 'id_domain' is set + if ('id_domain' not in params or + params['id_domain'] is None): + raise ValueError("Missing the required parameter `id_domain` when calling `get_task`") # noqa: E501 + # verify the required parameter 'id_name' is set + if ('id_name' not in params or + params['id_name'] is None): + raise ValueError("Missing the required parameter `id_name` when calling `get_task`") # noqa: E501 + # verify the required parameter 'id_version' is set + if ('id_version' not in params or + params['id_version'] is None): + raise ValueError("Missing the required parameter `id_version` when calling `get_task`") # noqa: E501 + + collection_formats = {} + + path_params = {} + if 'id_project' in params: + path_params['id.project'] = params['id_project'] # noqa: E501 + if 'id_domain' in params: + path_params['id.domain'] = params['id_domain'] # noqa: E501 + if 'id_name' in params: + path_params['id.name'] = params['id_name'] # noqa: E501 + if 'id_version' in params: + path_params['id.version'] = params['id_version'] # noqa: E501 + + query_params = [] + if 'id_resource_type' in params: + query_params.append(('id.resource_type', params['id_resource_type'])) # noqa: E501 + if 'id_org' in params: + query_params.append(('id.org', params['id_org'])) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/json']) # noqa: E501 + + # Authentication setting + auth_settings = [] # noqa: E501 + + return self.api_client.call_api( + '/api/v1/tasks/{id.project}/{id.domain}/{id.name}/{id.version}', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='AdminTask', # noqa: E501 + auth_settings=auth_settings, + async_req=params.get('async_req'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def get_task2(self, id_org, id_project, id_domain, id_name, id_version, **kwargs): # noqa: E501 + """Fetch a :ref:`ref_flyteidl.admin.Task` definition. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_task2(id_org, id_project, id_domain, id_name, id_version, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str id_org: Optional, org key applied to the resource. (required) + :param str id_project: Name of the project the resource belongs to. (required) + :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str id_name: User provided value for the resource. (required) + :param str id_version: Specific version of the resource. (required) + :param str id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects + :return: AdminTask + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + if kwargs.get('async_req'): + return self.get_task2_with_http_info(id_org, id_project, id_domain, id_name, id_version, **kwargs) # noqa: E501 + else: + (data) = self.get_task2_with_http_info(id_org, id_project, id_domain, id_name, id_version, **kwargs) # noqa: E501 + return data + + def get_task2_with_http_info(self, id_org, id_project, id_domain, id_name, id_version, **kwargs): # noqa: E501 + """Fetch a :ref:`ref_flyteidl.admin.Task` definition. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_task2_with_http_info(id_org, id_project, id_domain, id_name, id_version, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str id_org: Optional, org key applied to the resource. (required) + :param str id_project: Name of the project the resource belongs to. (required) + :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str id_name: User provided value for the resource. (required) + :param str id_version: Specific version of the resource. (required) + :param str id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects + :return: AdminTask + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['id_org', 'id_project', 'id_domain', 'id_name', 'id_version', 'id_resource_type'] # noqa: E501 + all_params.append('async_req') + all_params.append('_return_http_data_only') + all_params.append('_preload_content') + all_params.append('_request_timeout') + + params = locals() + for key, val in six.iteritems(params['kwargs']): + if key not in all_params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_task2" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'id_org' is set + if ('id_org' not in params or + params['id_org'] is None): + raise ValueError("Missing the required parameter `id_org` when calling `get_task2`") # noqa: E501 + # verify the required parameter 'id_project' is set + if ('id_project' not in params or + params['id_project'] is None): + raise ValueError("Missing the required parameter `id_project` when calling `get_task2`") # noqa: E501 + # verify the required parameter 'id_domain' is set + if ('id_domain' not in params or + params['id_domain'] is None): + raise ValueError("Missing the required parameter `id_domain` when calling `get_task2`") # noqa: E501 + # verify the required parameter 'id_name' is set + if ('id_name' not in params or + params['id_name'] is None): + raise ValueError("Missing the required parameter `id_name` when calling `get_task2`") # noqa: E501 + # verify the required parameter 'id_version' is set + if ('id_version' not in params or + params['id_version'] is None): + raise ValueError("Missing the required parameter `id_version` when calling `get_task2`") # noqa: E501 + + collection_formats = {} + + path_params = {} + if 'id_org' in params: + path_params['id.org'] = params['id_org'] # noqa: E501 + if 'id_project' in params: + path_params['id.project'] = params['id_project'] # noqa: E501 + if 'id_domain' in params: + path_params['id.domain'] = params['id_domain'] # noqa: E501 + if 'id_name' in params: + path_params['id.name'] = params['id_name'] # noqa: E501 + if 'id_version' in params: + path_params['id.version'] = params['id_version'] # noqa: E501 + + query_params = [] + if 'id_resource_type' in params: + query_params.append(('id.resource_type', params['id_resource_type'])) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/json']) # noqa: E501 + + # Authentication setting + auth_settings = [] # noqa: E501 + + return self.api_client.call_api( + '/api/v1/tasks/org/{id.org}/{id.project}/{id.domain}/{id.name}/{id.version}', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='AdminTask', # noqa: E501 + auth_settings=auth_settings, + async_req=params.get('async_req'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def get_task_execution(self, id_node_execution_id_execution_id_project, id_node_execution_id_execution_id_domain, id_node_execution_id_execution_id_name, id_node_execution_id_node_id, id_task_id_project, id_task_id_domain, id_task_id_name, id_task_id_version, id_retry_attempt, **kwargs): # noqa: E501 + """Fetches a :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_task_execution(id_node_execution_id_execution_id_project, id_node_execution_id_execution_id_domain, id_node_execution_id_execution_id_name, id_node_execution_id_node_id, id_task_id_project, id_task_id_domain, id_task_id_name, id_task_id_version, id_retry_attempt, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str id_node_execution_id_execution_id_project: Name of the project the resource belongs to. (required) + :param str id_node_execution_id_execution_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str id_node_execution_id_execution_id_name: User or system provided value for the resource. (required) + :param str id_node_execution_id_node_id: (required) + :param str id_task_id_project: Name of the project the resource belongs to. (required) + :param str id_task_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str id_task_id_name: User provided value for the resource. (required) + :param str id_task_id_version: Specific version of the resource. (required) + :param int id_retry_attempt: (required) + :param str id_task_id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects + :param str id_task_id_org: Optional, org key applied to the resource. + :param str id_node_execution_id_execution_id_org: Optional, org key applied to the resource. + :return: FlyteidladminTaskExecution + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + if kwargs.get('async_req'): + return self.get_task_execution_with_http_info(id_node_execution_id_execution_id_project, id_node_execution_id_execution_id_domain, id_node_execution_id_execution_id_name, id_node_execution_id_node_id, id_task_id_project, id_task_id_domain, id_task_id_name, id_task_id_version, id_retry_attempt, **kwargs) # noqa: E501 + else: + (data) = self.get_task_execution_with_http_info(id_node_execution_id_execution_id_project, id_node_execution_id_execution_id_domain, id_node_execution_id_execution_id_name, id_node_execution_id_node_id, id_task_id_project, id_task_id_domain, id_task_id_name, id_task_id_version, id_retry_attempt, **kwargs) # noqa: E501 + return data + + def get_task_execution_with_http_info(self, id_node_execution_id_execution_id_project, id_node_execution_id_execution_id_domain, id_node_execution_id_execution_id_name, id_node_execution_id_node_id, id_task_id_project, id_task_id_domain, id_task_id_name, id_task_id_version, id_retry_attempt, **kwargs): # noqa: E501 + """Fetches a :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_task_execution_with_http_info(id_node_execution_id_execution_id_project, id_node_execution_id_execution_id_domain, id_node_execution_id_execution_id_name, id_node_execution_id_node_id, id_task_id_project, id_task_id_domain, id_task_id_name, id_task_id_version, id_retry_attempt, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str id_node_execution_id_execution_id_project: Name of the project the resource belongs to. (required) + :param str id_node_execution_id_execution_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str id_node_execution_id_execution_id_name: User or system provided value for the resource. (required) + :param str id_node_execution_id_node_id: (required) + :param str id_task_id_project: Name of the project the resource belongs to. (required) + :param str id_task_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str id_task_id_name: User provided value for the resource. (required) + :param str id_task_id_version: Specific version of the resource. (required) + :param int id_retry_attempt: (required) + :param str id_task_id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects + :param str id_task_id_org: Optional, org key applied to the resource. + :param str id_node_execution_id_execution_id_org: Optional, org key applied to the resource. + :return: FlyteidladminTaskExecution + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['id_node_execution_id_execution_id_project', 'id_node_execution_id_execution_id_domain', 'id_node_execution_id_execution_id_name', 'id_node_execution_id_node_id', 'id_task_id_project', 'id_task_id_domain', 'id_task_id_name', 'id_task_id_version', 'id_retry_attempt', 'id_task_id_resource_type', 'id_task_id_org', 'id_node_execution_id_execution_id_org'] # noqa: E501 + all_params.append('async_req') + all_params.append('_return_http_data_only') + all_params.append('_preload_content') + all_params.append('_request_timeout') + + params = locals() + for key, val in six.iteritems(params['kwargs']): + if key not in all_params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_task_execution" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'id_node_execution_id_execution_id_project' is set + if ('id_node_execution_id_execution_id_project' not in params or + params['id_node_execution_id_execution_id_project'] is None): + raise ValueError("Missing the required parameter `id_node_execution_id_execution_id_project` when calling `get_task_execution`") # noqa: E501 + # verify the required parameter 'id_node_execution_id_execution_id_domain' is set + if ('id_node_execution_id_execution_id_domain' not in params or + params['id_node_execution_id_execution_id_domain'] is None): + raise ValueError("Missing the required parameter `id_node_execution_id_execution_id_domain` when calling `get_task_execution`") # noqa: E501 + # verify the required parameter 'id_node_execution_id_execution_id_name' is set + if ('id_node_execution_id_execution_id_name' not in params or + params['id_node_execution_id_execution_id_name'] is None): + raise ValueError("Missing the required parameter `id_node_execution_id_execution_id_name` when calling `get_task_execution`") # noqa: E501 + # verify the required parameter 'id_node_execution_id_node_id' is set + if ('id_node_execution_id_node_id' not in params or + params['id_node_execution_id_node_id'] is None): + raise ValueError("Missing the required parameter `id_node_execution_id_node_id` when calling `get_task_execution`") # noqa: E501 + # verify the required parameter 'id_task_id_project' is set + if ('id_task_id_project' not in params or + params['id_task_id_project'] is None): + raise ValueError("Missing the required parameter `id_task_id_project` when calling `get_task_execution`") # noqa: E501 + # verify the required parameter 'id_task_id_domain' is set + if ('id_task_id_domain' not in params or + params['id_task_id_domain'] is None): + raise ValueError("Missing the required parameter `id_task_id_domain` when calling `get_task_execution`") # noqa: E501 + # verify the required parameter 'id_task_id_name' is set + if ('id_task_id_name' not in params or + params['id_task_id_name'] is None): + raise ValueError("Missing the required parameter `id_task_id_name` when calling `get_task_execution`") # noqa: E501 + # verify the required parameter 'id_task_id_version' is set + if ('id_task_id_version' not in params or + params['id_task_id_version'] is None): + raise ValueError("Missing the required parameter `id_task_id_version` when calling `get_task_execution`") # noqa: E501 + # verify the required parameter 'id_retry_attempt' is set + if ('id_retry_attempt' not in params or + params['id_retry_attempt'] is None): + raise ValueError("Missing the required parameter `id_retry_attempt` when calling `get_task_execution`") # noqa: E501 + + collection_formats = {} + + path_params = {} + if 'id_node_execution_id_execution_id_project' in params: + path_params['id.node_execution_id.execution_id.project'] = params['id_node_execution_id_execution_id_project'] # noqa: E501 + if 'id_node_execution_id_execution_id_domain' in params: + path_params['id.node_execution_id.execution_id.domain'] = params['id_node_execution_id_execution_id_domain'] # noqa: E501 + if 'id_node_execution_id_execution_id_name' in params: + path_params['id.node_execution_id.execution_id.name'] = params['id_node_execution_id_execution_id_name'] # noqa: E501 + if 'id_node_execution_id_node_id' in params: + path_params['id.node_execution_id.node_id'] = params['id_node_execution_id_node_id'] # noqa: E501 + if 'id_task_id_project' in params: + path_params['id.task_id.project'] = params['id_task_id_project'] # noqa: E501 + if 'id_task_id_domain' in params: + path_params['id.task_id.domain'] = params['id_task_id_domain'] # noqa: E501 + if 'id_task_id_name' in params: + path_params['id.task_id.name'] = params['id_task_id_name'] # noqa: E501 + if 'id_task_id_version' in params: + path_params['id.task_id.version'] = params['id_task_id_version'] # noqa: E501 + if 'id_retry_attempt' in params: + path_params['id.retry_attempt'] = params['id_retry_attempt'] # noqa: E501 + + query_params = [] + if 'id_task_id_resource_type' in params: + query_params.append(('id.task_id.resource_type', params['id_task_id_resource_type'])) # noqa: E501 + if 'id_task_id_org' in params: + query_params.append(('id.task_id.org', params['id_task_id_org'])) # noqa: E501 + if 'id_node_execution_id_execution_id_org' in params: + query_params.append(('id.node_execution_id.execution_id.org', params['id_node_execution_id_execution_id_org'])) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/json']) # noqa: E501 + + # Authentication setting + auth_settings = [] # noqa: E501 + + return self.api_client.call_api( + '/api/v1/task_executions/{id.node_execution_id.execution_id.project}/{id.node_execution_id.execution_id.domain}/{id.node_execution_id.execution_id.name}/{id.node_execution_id.node_id}/{id.task_id.project}/{id.task_id.domain}/{id.task_id.name}/{id.task_id.version}/{id.retry_attempt}', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='FlyteidladminTaskExecution', # noqa: E501 + auth_settings=auth_settings, + async_req=params.get('async_req'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def get_task_execution2(self, id_node_execution_id_execution_id_org, id_node_execution_id_execution_id_project, id_node_execution_id_execution_id_domain, id_node_execution_id_execution_id_name, id_node_execution_id_node_id, id_task_id_project, id_task_id_domain, id_task_id_name, id_task_id_version, id_retry_attempt, **kwargs): # noqa: E501 + """Fetches a :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_task_execution2(id_node_execution_id_execution_id_org, id_node_execution_id_execution_id_project, id_node_execution_id_execution_id_domain, id_node_execution_id_execution_id_name, id_node_execution_id_node_id, id_task_id_project, id_task_id_domain, id_task_id_name, id_task_id_version, id_retry_attempt, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str id_node_execution_id_execution_id_org: Optional, org key applied to the resource. (required) + :param str id_node_execution_id_execution_id_project: Name of the project the resource belongs to. (required) + :param str id_node_execution_id_execution_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str id_node_execution_id_execution_id_name: User or system provided value for the resource. (required) + :param str id_node_execution_id_node_id: (required) + :param str id_task_id_project: Name of the project the resource belongs to. (required) + :param str id_task_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str id_task_id_name: User provided value for the resource. (required) + :param str id_task_id_version: Specific version of the resource. (required) + :param int id_retry_attempt: (required) + :param str id_task_id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects + :param str id_task_id_org: Optional, org key applied to the resource. + :return: FlyteidladminTaskExecution + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + if kwargs.get('async_req'): + return self.get_task_execution2_with_http_info(id_node_execution_id_execution_id_org, id_node_execution_id_execution_id_project, id_node_execution_id_execution_id_domain, id_node_execution_id_execution_id_name, id_node_execution_id_node_id, id_task_id_project, id_task_id_domain, id_task_id_name, id_task_id_version, id_retry_attempt, **kwargs) # noqa: E501 + else: + (data) = self.get_task_execution2_with_http_info(id_node_execution_id_execution_id_org, id_node_execution_id_execution_id_project, id_node_execution_id_execution_id_domain, id_node_execution_id_execution_id_name, id_node_execution_id_node_id, id_task_id_project, id_task_id_domain, id_task_id_name, id_task_id_version, id_retry_attempt, **kwargs) # noqa: E501 + return data + + def get_task_execution2_with_http_info(self, id_node_execution_id_execution_id_org, id_node_execution_id_execution_id_project, id_node_execution_id_execution_id_domain, id_node_execution_id_execution_id_name, id_node_execution_id_node_id, id_task_id_project, id_task_id_domain, id_task_id_name, id_task_id_version, id_retry_attempt, **kwargs): # noqa: E501 + """Fetches a :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_task_execution2_with_http_info(id_node_execution_id_execution_id_org, id_node_execution_id_execution_id_project, id_node_execution_id_execution_id_domain, id_node_execution_id_execution_id_name, id_node_execution_id_node_id, id_task_id_project, id_task_id_domain, id_task_id_name, id_task_id_version, id_retry_attempt, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str id_node_execution_id_execution_id_org: Optional, org key applied to the resource. (required) + :param str id_node_execution_id_execution_id_project: Name of the project the resource belongs to. (required) + :param str id_node_execution_id_execution_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str id_node_execution_id_execution_id_name: User or system provided value for the resource. (required) + :param str id_node_execution_id_node_id: (required) + :param str id_task_id_project: Name of the project the resource belongs to. (required) + :param str id_task_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str id_task_id_name: User provided value for the resource. (required) + :param str id_task_id_version: Specific version of the resource. (required) + :param int id_retry_attempt: (required) + :param str id_task_id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects + :param str id_task_id_org: Optional, org key applied to the resource. + :return: FlyteidladminTaskExecution + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['id_node_execution_id_execution_id_org', 'id_node_execution_id_execution_id_project', 'id_node_execution_id_execution_id_domain', 'id_node_execution_id_execution_id_name', 'id_node_execution_id_node_id', 'id_task_id_project', 'id_task_id_domain', 'id_task_id_name', 'id_task_id_version', 'id_retry_attempt', 'id_task_id_resource_type', 'id_task_id_org'] # noqa: E501 + all_params.append('async_req') + all_params.append('_return_http_data_only') + all_params.append('_preload_content') + all_params.append('_request_timeout') + + params = locals() + for key, val in six.iteritems(params['kwargs']): + if key not in all_params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_task_execution2" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'id_node_execution_id_execution_id_org' is set + if ('id_node_execution_id_execution_id_org' not in params or + params['id_node_execution_id_execution_id_org'] is None): + raise ValueError("Missing the required parameter `id_node_execution_id_execution_id_org` when calling `get_task_execution2`") # noqa: E501 + # verify the required parameter 'id_node_execution_id_execution_id_project' is set + if ('id_node_execution_id_execution_id_project' not in params or + params['id_node_execution_id_execution_id_project'] is None): + raise ValueError("Missing the required parameter `id_node_execution_id_execution_id_project` when calling `get_task_execution2`") # noqa: E501 + # verify the required parameter 'id_node_execution_id_execution_id_domain' is set + if ('id_node_execution_id_execution_id_domain' not in params or + params['id_node_execution_id_execution_id_domain'] is None): + raise ValueError("Missing the required parameter `id_node_execution_id_execution_id_domain` when calling `get_task_execution2`") # noqa: E501 + # verify the required parameter 'id_node_execution_id_execution_id_name' is set + if ('id_node_execution_id_execution_id_name' not in params or + params['id_node_execution_id_execution_id_name'] is None): + raise ValueError("Missing the required parameter `id_node_execution_id_execution_id_name` when calling `get_task_execution2`") # noqa: E501 + # verify the required parameter 'id_node_execution_id_node_id' is set + if ('id_node_execution_id_node_id' not in params or + params['id_node_execution_id_node_id'] is None): + raise ValueError("Missing the required parameter `id_node_execution_id_node_id` when calling `get_task_execution2`") # noqa: E501 + # verify the required parameter 'id_task_id_project' is set + if ('id_task_id_project' not in params or + params['id_task_id_project'] is None): + raise ValueError("Missing the required parameter `id_task_id_project` when calling `get_task_execution2`") # noqa: E501 + # verify the required parameter 'id_task_id_domain' is set + if ('id_task_id_domain' not in params or + params['id_task_id_domain'] is None): + raise ValueError("Missing the required parameter `id_task_id_domain` when calling `get_task_execution2`") # noqa: E501 + # verify the required parameter 'id_task_id_name' is set + if ('id_task_id_name' not in params or + params['id_task_id_name'] is None): + raise ValueError("Missing the required parameter `id_task_id_name` when calling `get_task_execution2`") # noqa: E501 + # verify the required parameter 'id_task_id_version' is set + if ('id_task_id_version' not in params or + params['id_task_id_version'] is None): + raise ValueError("Missing the required parameter `id_task_id_version` when calling `get_task_execution2`") # noqa: E501 + # verify the required parameter 'id_retry_attempt' is set + if ('id_retry_attempt' not in params or + params['id_retry_attempt'] is None): + raise ValueError("Missing the required parameter `id_retry_attempt` when calling `get_task_execution2`") # noqa: E501 + + collection_formats = {} + + path_params = {} + if 'id_node_execution_id_execution_id_org' in params: + path_params['id.node_execution_id.execution_id.org'] = params['id_node_execution_id_execution_id_org'] # noqa: E501 + if 'id_node_execution_id_execution_id_project' in params: + path_params['id.node_execution_id.execution_id.project'] = params['id_node_execution_id_execution_id_project'] # noqa: E501 + if 'id_node_execution_id_execution_id_domain' in params: + path_params['id.node_execution_id.execution_id.domain'] = params['id_node_execution_id_execution_id_domain'] # noqa: E501 + if 'id_node_execution_id_execution_id_name' in params: + path_params['id.node_execution_id.execution_id.name'] = params['id_node_execution_id_execution_id_name'] # noqa: E501 + if 'id_node_execution_id_node_id' in params: + path_params['id.node_execution_id.node_id'] = params['id_node_execution_id_node_id'] # noqa: E501 + if 'id_task_id_project' in params: + path_params['id.task_id.project'] = params['id_task_id_project'] # noqa: E501 + if 'id_task_id_domain' in params: + path_params['id.task_id.domain'] = params['id_task_id_domain'] # noqa: E501 + if 'id_task_id_name' in params: + path_params['id.task_id.name'] = params['id_task_id_name'] # noqa: E501 + if 'id_task_id_version' in params: + path_params['id.task_id.version'] = params['id_task_id_version'] # noqa: E501 + if 'id_retry_attempt' in params: + path_params['id.retry_attempt'] = params['id_retry_attempt'] # noqa: E501 + + query_params = [] + if 'id_task_id_resource_type' in params: + query_params.append(('id.task_id.resource_type', params['id_task_id_resource_type'])) # noqa: E501 + if 'id_task_id_org' in params: + query_params.append(('id.task_id.org', params['id_task_id_org'])) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/json']) # noqa: E501 + + # Authentication setting + auth_settings = [] # noqa: E501 + + return self.api_client.call_api( + '/api/v1/task_executions/org/{id.node_execution_id.execution_id.org}/{id.node_execution_id.execution_id.project}/{id.node_execution_id.execution_id.domain}/{id.node_execution_id.execution_id.name}/{id.node_execution_id.node_id}/{id.task_id.project}/{id.task_id.domain}/{id.task_id.name}/{id.task_id.version}/{id.retry_attempt}', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='FlyteidladminTaskExecution', # noqa: E501 + auth_settings=auth_settings, + async_req=params.get('async_req'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def get_task_execution_data(self, id_node_execution_id_execution_id_project, id_node_execution_id_execution_id_domain, id_node_execution_id_execution_id_name, id_node_execution_id_node_id, id_task_id_project, id_task_id_domain, id_task_id_name, id_task_id_version, id_retry_attempt, **kwargs): # noqa: E501 + """Fetches input and output data for a :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_task_execution_data(id_node_execution_id_execution_id_project, id_node_execution_id_execution_id_domain, id_node_execution_id_execution_id_name, id_node_execution_id_node_id, id_task_id_project, id_task_id_domain, id_task_id_name, id_task_id_version, id_retry_attempt, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str id_node_execution_id_execution_id_project: Name of the project the resource belongs to. (required) + :param str id_node_execution_id_execution_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str id_node_execution_id_execution_id_name: User or system provided value for the resource. (required) + :param str id_node_execution_id_node_id: (required) + :param str id_task_id_project: Name of the project the resource belongs to. (required) + :param str id_task_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str id_task_id_name: User provided value for the resource. (required) + :param str id_task_id_version: Specific version of the resource. (required) + :param int id_retry_attempt: (required) + :param str id_task_id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects + :param str id_task_id_org: Optional, org key applied to the resource. + :param str id_node_execution_id_execution_id_org: Optional, org key applied to the resource. + :return: AdminTaskExecutionGetDataResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + if kwargs.get('async_req'): + return self.get_task_execution_data_with_http_info(id_node_execution_id_execution_id_project, id_node_execution_id_execution_id_domain, id_node_execution_id_execution_id_name, id_node_execution_id_node_id, id_task_id_project, id_task_id_domain, id_task_id_name, id_task_id_version, id_retry_attempt, **kwargs) # noqa: E501 + else: + (data) = self.get_task_execution_data_with_http_info(id_node_execution_id_execution_id_project, id_node_execution_id_execution_id_domain, id_node_execution_id_execution_id_name, id_node_execution_id_node_id, id_task_id_project, id_task_id_domain, id_task_id_name, id_task_id_version, id_retry_attempt, **kwargs) # noqa: E501 + return data + + def get_task_execution_data_with_http_info(self, id_node_execution_id_execution_id_project, id_node_execution_id_execution_id_domain, id_node_execution_id_execution_id_name, id_node_execution_id_node_id, id_task_id_project, id_task_id_domain, id_task_id_name, id_task_id_version, id_retry_attempt, **kwargs): # noqa: E501 + """Fetches input and output data for a :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_task_execution_data_with_http_info(id_node_execution_id_execution_id_project, id_node_execution_id_execution_id_domain, id_node_execution_id_execution_id_name, id_node_execution_id_node_id, id_task_id_project, id_task_id_domain, id_task_id_name, id_task_id_version, id_retry_attempt, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str id_node_execution_id_execution_id_project: Name of the project the resource belongs to. (required) + :param str id_node_execution_id_execution_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str id_node_execution_id_execution_id_name: User or system provided value for the resource. (required) + :param str id_node_execution_id_node_id: (required) + :param str id_task_id_project: Name of the project the resource belongs to. (required) + :param str id_task_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str id_task_id_name: User provided value for the resource. (required) + :param str id_task_id_version: Specific version of the resource. (required) + :param int id_retry_attempt: (required) + :param str id_task_id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects + :param str id_task_id_org: Optional, org key applied to the resource. + :param str id_node_execution_id_execution_id_org: Optional, org key applied to the resource. + :return: AdminTaskExecutionGetDataResponse + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['id_node_execution_id_execution_id_project', 'id_node_execution_id_execution_id_domain', 'id_node_execution_id_execution_id_name', 'id_node_execution_id_node_id', 'id_task_id_project', 'id_task_id_domain', 'id_task_id_name', 'id_task_id_version', 'id_retry_attempt', 'id_task_id_resource_type', 'id_task_id_org', 'id_node_execution_id_execution_id_org'] # noqa: E501 + all_params.append('async_req') + all_params.append('_return_http_data_only') + all_params.append('_preload_content') + all_params.append('_request_timeout') + + params = locals() + for key, val in six.iteritems(params['kwargs']): + if key not in all_params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_task_execution_data" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'id_node_execution_id_execution_id_project' is set + if ('id_node_execution_id_execution_id_project' not in params or + params['id_node_execution_id_execution_id_project'] is None): + raise ValueError("Missing the required parameter `id_node_execution_id_execution_id_project` when calling `get_task_execution_data`") # noqa: E501 + # verify the required parameter 'id_node_execution_id_execution_id_domain' is set + if ('id_node_execution_id_execution_id_domain' not in params or + params['id_node_execution_id_execution_id_domain'] is None): + raise ValueError("Missing the required parameter `id_node_execution_id_execution_id_domain` when calling `get_task_execution_data`") # noqa: E501 + # verify the required parameter 'id_node_execution_id_execution_id_name' is set + if ('id_node_execution_id_execution_id_name' not in params or + params['id_node_execution_id_execution_id_name'] is None): + raise ValueError("Missing the required parameter `id_node_execution_id_execution_id_name` when calling `get_task_execution_data`") # noqa: E501 + # verify the required parameter 'id_node_execution_id_node_id' is set + if ('id_node_execution_id_node_id' not in params or + params['id_node_execution_id_node_id'] is None): + raise ValueError("Missing the required parameter `id_node_execution_id_node_id` when calling `get_task_execution_data`") # noqa: E501 + # verify the required parameter 'id_task_id_project' is set + if ('id_task_id_project' not in params or + params['id_task_id_project'] is None): + raise ValueError("Missing the required parameter `id_task_id_project` when calling `get_task_execution_data`") # noqa: E501 + # verify the required parameter 'id_task_id_domain' is set + if ('id_task_id_domain' not in params or + params['id_task_id_domain'] is None): + raise ValueError("Missing the required parameter `id_task_id_domain` when calling `get_task_execution_data`") # noqa: E501 + # verify the required parameter 'id_task_id_name' is set + if ('id_task_id_name' not in params or + params['id_task_id_name'] is None): + raise ValueError("Missing the required parameter `id_task_id_name` when calling `get_task_execution_data`") # noqa: E501 + # verify the required parameter 'id_task_id_version' is set + if ('id_task_id_version' not in params or + params['id_task_id_version'] is None): + raise ValueError("Missing the required parameter `id_task_id_version` when calling `get_task_execution_data`") # noqa: E501 + # verify the required parameter 'id_retry_attempt' is set + if ('id_retry_attempt' not in params or + params['id_retry_attempt'] is None): + raise ValueError("Missing the required parameter `id_retry_attempt` when calling `get_task_execution_data`") # noqa: E501 + + collection_formats = {} + + path_params = {} + if 'id_node_execution_id_execution_id_project' in params: + path_params['id.node_execution_id.execution_id.project'] = params['id_node_execution_id_execution_id_project'] # noqa: E501 + if 'id_node_execution_id_execution_id_domain' in params: + path_params['id.node_execution_id.execution_id.domain'] = params['id_node_execution_id_execution_id_domain'] # noqa: E501 + if 'id_node_execution_id_execution_id_name' in params: + path_params['id.node_execution_id.execution_id.name'] = params['id_node_execution_id_execution_id_name'] # noqa: E501 + if 'id_node_execution_id_node_id' in params: + path_params['id.node_execution_id.node_id'] = params['id_node_execution_id_node_id'] # noqa: E501 + if 'id_task_id_project' in params: + path_params['id.task_id.project'] = params['id_task_id_project'] # noqa: E501 + if 'id_task_id_domain' in params: + path_params['id.task_id.domain'] = params['id_task_id_domain'] # noqa: E501 + if 'id_task_id_name' in params: + path_params['id.task_id.name'] = params['id_task_id_name'] # noqa: E501 + if 'id_task_id_version' in params: + path_params['id.task_id.version'] = params['id_task_id_version'] # noqa: E501 + if 'id_retry_attempt' in params: + path_params['id.retry_attempt'] = params['id_retry_attempt'] # noqa: E501 + + query_params = [] + if 'id_task_id_resource_type' in params: + query_params.append(('id.task_id.resource_type', params['id_task_id_resource_type'])) # noqa: E501 + if 'id_task_id_org' in params: + query_params.append(('id.task_id.org', params['id_task_id_org'])) # noqa: E501 + if 'id_node_execution_id_execution_id_org' in params: + query_params.append(('id.node_execution_id.execution_id.org', params['id_node_execution_id_execution_id_org'])) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/json']) # noqa: E501 + + # Authentication setting + auth_settings = [] # noqa: E501 + + return self.api_client.call_api( + '/api/v1/data/task_executions/{id.node_execution_id.execution_id.project}/{id.node_execution_id.execution_id.domain}/{id.node_execution_id.execution_id.name}/{id.node_execution_id.node_id}/{id.task_id.project}/{id.task_id.domain}/{id.task_id.name}/{id.task_id.version}/{id.retry_attempt}', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='AdminTaskExecutionGetDataResponse', # noqa: E501 + auth_settings=auth_settings, + async_req=params.get('async_req'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def get_task_execution_data2(self, id_node_execution_id_execution_id_org, id_node_execution_id_execution_id_project, id_node_execution_id_execution_id_domain, id_node_execution_id_execution_id_name, id_node_execution_id_node_id, id_task_id_project, id_task_id_domain, id_task_id_name, id_task_id_version, id_retry_attempt, **kwargs): # noqa: E501 + """Fetches input and output data for a :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_task_execution_data2(id_node_execution_id_execution_id_org, id_node_execution_id_execution_id_project, id_node_execution_id_execution_id_domain, id_node_execution_id_execution_id_name, id_node_execution_id_node_id, id_task_id_project, id_task_id_domain, id_task_id_name, id_task_id_version, id_retry_attempt, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str id_node_execution_id_execution_id_org: Optional, org key applied to the resource. (required) + :param str id_node_execution_id_execution_id_project: Name of the project the resource belongs to. (required) + :param str id_node_execution_id_execution_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str id_node_execution_id_execution_id_name: User or system provided value for the resource. (required) + :param str id_node_execution_id_node_id: (required) + :param str id_task_id_project: Name of the project the resource belongs to. (required) + :param str id_task_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str id_task_id_name: User provided value for the resource. (required) + :param str id_task_id_version: Specific version of the resource. (required) + :param int id_retry_attempt: (required) + :param str id_task_id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects + :param str id_task_id_org: Optional, org key applied to the resource. + :return: AdminTaskExecutionGetDataResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + if kwargs.get('async_req'): + return self.get_task_execution_data2_with_http_info(id_node_execution_id_execution_id_org, id_node_execution_id_execution_id_project, id_node_execution_id_execution_id_domain, id_node_execution_id_execution_id_name, id_node_execution_id_node_id, id_task_id_project, id_task_id_domain, id_task_id_name, id_task_id_version, id_retry_attempt, **kwargs) # noqa: E501 + else: + (data) = self.get_task_execution_data2_with_http_info(id_node_execution_id_execution_id_org, id_node_execution_id_execution_id_project, id_node_execution_id_execution_id_domain, id_node_execution_id_execution_id_name, id_node_execution_id_node_id, id_task_id_project, id_task_id_domain, id_task_id_name, id_task_id_version, id_retry_attempt, **kwargs) # noqa: E501 + return data + + def get_task_execution_data2_with_http_info(self, id_node_execution_id_execution_id_org, id_node_execution_id_execution_id_project, id_node_execution_id_execution_id_domain, id_node_execution_id_execution_id_name, id_node_execution_id_node_id, id_task_id_project, id_task_id_domain, id_task_id_name, id_task_id_version, id_retry_attempt, **kwargs): # noqa: E501 + """Fetches input and output data for a :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_task_execution_data2_with_http_info(id_node_execution_id_execution_id_org, id_node_execution_id_execution_id_project, id_node_execution_id_execution_id_domain, id_node_execution_id_execution_id_name, id_node_execution_id_node_id, id_task_id_project, id_task_id_domain, id_task_id_name, id_task_id_version, id_retry_attempt, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str id_node_execution_id_execution_id_org: Optional, org key applied to the resource. (required) + :param str id_node_execution_id_execution_id_project: Name of the project the resource belongs to. (required) + :param str id_node_execution_id_execution_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str id_node_execution_id_execution_id_name: User or system provided value for the resource. (required) + :param str id_node_execution_id_node_id: (required) + :param str id_task_id_project: Name of the project the resource belongs to. (required) + :param str id_task_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str id_task_id_name: User provided value for the resource. (required) + :param str id_task_id_version: Specific version of the resource. (required) + :param int id_retry_attempt: (required) + :param str id_task_id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects + :param str id_task_id_org: Optional, org key applied to the resource. + :return: AdminTaskExecutionGetDataResponse + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['id_node_execution_id_execution_id_org', 'id_node_execution_id_execution_id_project', 'id_node_execution_id_execution_id_domain', 'id_node_execution_id_execution_id_name', 'id_node_execution_id_node_id', 'id_task_id_project', 'id_task_id_domain', 'id_task_id_name', 'id_task_id_version', 'id_retry_attempt', 'id_task_id_resource_type', 'id_task_id_org'] # noqa: E501 + all_params.append('async_req') + all_params.append('_return_http_data_only') + all_params.append('_preload_content') + all_params.append('_request_timeout') + + params = locals() + for key, val in six.iteritems(params['kwargs']): + if key not in all_params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_task_execution_data2" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'id_node_execution_id_execution_id_org' is set + if ('id_node_execution_id_execution_id_org' not in params or + params['id_node_execution_id_execution_id_org'] is None): + raise ValueError("Missing the required parameter `id_node_execution_id_execution_id_org` when calling `get_task_execution_data2`") # noqa: E501 + # verify the required parameter 'id_node_execution_id_execution_id_project' is set + if ('id_node_execution_id_execution_id_project' not in params or + params['id_node_execution_id_execution_id_project'] is None): + raise ValueError("Missing the required parameter `id_node_execution_id_execution_id_project` when calling `get_task_execution_data2`") # noqa: E501 + # verify the required parameter 'id_node_execution_id_execution_id_domain' is set + if ('id_node_execution_id_execution_id_domain' not in params or + params['id_node_execution_id_execution_id_domain'] is None): + raise ValueError("Missing the required parameter `id_node_execution_id_execution_id_domain` when calling `get_task_execution_data2`") # noqa: E501 + # verify the required parameter 'id_node_execution_id_execution_id_name' is set + if ('id_node_execution_id_execution_id_name' not in params or + params['id_node_execution_id_execution_id_name'] is None): + raise ValueError("Missing the required parameter `id_node_execution_id_execution_id_name` when calling `get_task_execution_data2`") # noqa: E501 + # verify the required parameter 'id_node_execution_id_node_id' is set + if ('id_node_execution_id_node_id' not in params or params['id_node_execution_id_node_id'] is None): - raise ValueError("Missing the required parameter `id_node_execution_id_node_id` when calling `get_task_execution`") # noqa: E501 + raise ValueError("Missing the required parameter `id_node_execution_id_node_id` when calling `get_task_execution_data2`") # noqa: E501 # verify the required parameter 'id_task_id_project' is set if ('id_task_id_project' not in params or params['id_task_id_project'] is None): - raise ValueError("Missing the required parameter `id_task_id_project` when calling `get_task_execution`") # noqa: E501 + raise ValueError("Missing the required parameter `id_task_id_project` when calling `get_task_execution_data2`") # noqa: E501 # verify the required parameter 'id_task_id_domain' is set if ('id_task_id_domain' not in params or params['id_task_id_domain'] is None): - raise ValueError("Missing the required parameter `id_task_id_domain` when calling `get_task_execution`") # noqa: E501 + raise ValueError("Missing the required parameter `id_task_id_domain` when calling `get_task_execution_data2`") # noqa: E501 # verify the required parameter 'id_task_id_name' is set if ('id_task_id_name' not in params or params['id_task_id_name'] is None): - raise ValueError("Missing the required parameter `id_task_id_name` when calling `get_task_execution`") # noqa: E501 + raise ValueError("Missing the required parameter `id_task_id_name` when calling `get_task_execution_data2`") # noqa: E501 # verify the required parameter 'id_task_id_version' is set if ('id_task_id_version' not in params or params['id_task_id_version'] is None): - raise ValueError("Missing the required parameter `id_task_id_version` when calling `get_task_execution`") # noqa: E501 + raise ValueError("Missing the required parameter `id_task_id_version` when calling `get_task_execution_data2`") # noqa: E501 # verify the required parameter 'id_retry_attempt' is set if ('id_retry_attempt' not in params or params['id_retry_attempt'] is None): - raise ValueError("Missing the required parameter `id_retry_attempt` when calling `get_task_execution`") # noqa: E501 + raise ValueError("Missing the required parameter `id_retry_attempt` when calling `get_task_execution_data2`") # noqa: E501 + + collection_formats = {} + + path_params = {} + if 'id_node_execution_id_execution_id_org' in params: + path_params['id.node_execution_id.execution_id.org'] = params['id_node_execution_id_execution_id_org'] # noqa: E501 + if 'id_node_execution_id_execution_id_project' in params: + path_params['id.node_execution_id.execution_id.project'] = params['id_node_execution_id_execution_id_project'] # noqa: E501 + if 'id_node_execution_id_execution_id_domain' in params: + path_params['id.node_execution_id.execution_id.domain'] = params['id_node_execution_id_execution_id_domain'] # noqa: E501 + if 'id_node_execution_id_execution_id_name' in params: + path_params['id.node_execution_id.execution_id.name'] = params['id_node_execution_id_execution_id_name'] # noqa: E501 + if 'id_node_execution_id_node_id' in params: + path_params['id.node_execution_id.node_id'] = params['id_node_execution_id_node_id'] # noqa: E501 + if 'id_task_id_project' in params: + path_params['id.task_id.project'] = params['id_task_id_project'] # noqa: E501 + if 'id_task_id_domain' in params: + path_params['id.task_id.domain'] = params['id_task_id_domain'] # noqa: E501 + if 'id_task_id_name' in params: + path_params['id.task_id.name'] = params['id_task_id_name'] # noqa: E501 + if 'id_task_id_version' in params: + path_params['id.task_id.version'] = params['id_task_id_version'] # noqa: E501 + if 'id_retry_attempt' in params: + path_params['id.retry_attempt'] = params['id_retry_attempt'] # noqa: E501 + + query_params = [] + if 'id_task_id_resource_type' in params: + query_params.append(('id.task_id.resource_type', params['id_task_id_resource_type'])) # noqa: E501 + if 'id_task_id_org' in params: + query_params.append(('id.task_id.org', params['id_task_id_org'])) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/json']) # noqa: E501 + + # Authentication setting + auth_settings = [] # noqa: E501 + + return self.api_client.call_api( + '/api/v1/data/task_executions/org/{id.node_execution_id.execution_id.org}/{id.node_execution_id.execution_id.project}/{id.node_execution_id.execution_id.domain}/{id.node_execution_id.execution_id.name}/{id.node_execution_id.node_id}/{id.task_id.project}/{id.task_id.domain}/{id.task_id.name}/{id.task_id.version}/{id.retry_attempt}', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='AdminTaskExecutionGetDataResponse', # noqa: E501 + auth_settings=auth_settings, + async_req=params.get('async_req'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def get_version(self, **kwargs): # noqa: E501 + """get_version # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_version(async_req=True) + >>> result = thread.get() + + :param async_req bool + :return: AdminGetVersionResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + if kwargs.get('async_req'): + return self.get_version_with_http_info(**kwargs) # noqa: E501 + else: + (data) = self.get_version_with_http_info(**kwargs) # noqa: E501 + return data + + def get_version_with_http_info(self, **kwargs): # noqa: E501 + """get_version # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_version_with_http_info(async_req=True) + >>> result = thread.get() + + :param async_req bool + :return: AdminGetVersionResponse + If the method is called asynchronously, + returns the request thread. + """ + + all_params = [] # noqa: E501 + all_params.append('async_req') + all_params.append('_return_http_data_only') + all_params.append('_preload_content') + all_params.append('_request_timeout') + + params = locals() + for key, val in six.iteritems(params['kwargs']): + if key not in all_params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_version" % key + ) + params[key] = val + del params['kwargs'] + + collection_formats = {} + + path_params = {} + + query_params = [] + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/json']) # noqa: E501 + + # Authentication setting + auth_settings = [] # noqa: E501 + + return self.api_client.call_api( + '/api/v1/version', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='AdminGetVersionResponse', # noqa: E501 + auth_settings=auth_settings, + async_req=params.get('async_req'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def get_workflow(self, id_project, id_domain, id_name, id_version, **kwargs): # noqa: E501 + """Fetch a :ref:`ref_flyteidl.admin.Workflow` definition. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_workflow(id_project, id_domain, id_name, id_version, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str id_project: Name of the project the resource belongs to. (required) + :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str id_name: User provided value for the resource. (required) + :param str id_version: Specific version of the resource. (required) + :param str id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects + :param str id_org: Optional, org key applied to the resource. + :return: AdminWorkflow + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + if kwargs.get('async_req'): + return self.get_workflow_with_http_info(id_project, id_domain, id_name, id_version, **kwargs) # noqa: E501 + else: + (data) = self.get_workflow_with_http_info(id_project, id_domain, id_name, id_version, **kwargs) # noqa: E501 + return data + + def get_workflow_with_http_info(self, id_project, id_domain, id_name, id_version, **kwargs): # noqa: E501 + """Fetch a :ref:`ref_flyteidl.admin.Workflow` definition. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_workflow_with_http_info(id_project, id_domain, id_name, id_version, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str id_project: Name of the project the resource belongs to. (required) + :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str id_name: User provided value for the resource. (required) + :param str id_version: Specific version of the resource. (required) + :param str id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects + :param str id_org: Optional, org key applied to the resource. + :return: AdminWorkflow + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['id_project', 'id_domain', 'id_name', 'id_version', 'id_resource_type', 'id_org'] # noqa: E501 + all_params.append('async_req') + all_params.append('_return_http_data_only') + all_params.append('_preload_content') + all_params.append('_request_timeout') + + params = locals() + for key, val in six.iteritems(params['kwargs']): + if key not in all_params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_workflow" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'id_project' is set + if ('id_project' not in params or + params['id_project'] is None): + raise ValueError("Missing the required parameter `id_project` when calling `get_workflow`") # noqa: E501 + # verify the required parameter 'id_domain' is set + if ('id_domain' not in params or + params['id_domain'] is None): + raise ValueError("Missing the required parameter `id_domain` when calling `get_workflow`") # noqa: E501 + # verify the required parameter 'id_name' is set + if ('id_name' not in params or + params['id_name'] is None): + raise ValueError("Missing the required parameter `id_name` when calling `get_workflow`") # noqa: E501 + # verify the required parameter 'id_version' is set + if ('id_version' not in params or + params['id_version'] is None): + raise ValueError("Missing the required parameter `id_version` when calling `get_workflow`") # noqa: E501 collection_formats = {} path_params = {} - if 'id_node_execution_id_execution_id_project' in params: - path_params['id.node_execution_id.execution_id.project'] = params['id_node_execution_id_execution_id_project'] # noqa: E501 - if 'id_node_execution_id_execution_id_domain' in params: - path_params['id.node_execution_id.execution_id.domain'] = params['id_node_execution_id_execution_id_domain'] # noqa: E501 - if 'id_node_execution_id_execution_id_name' in params: - path_params['id.node_execution_id.execution_id.name'] = params['id_node_execution_id_execution_id_name'] # noqa: E501 - if 'id_node_execution_id_node_id' in params: - path_params['id.node_execution_id.node_id'] = params['id_node_execution_id_node_id'] # noqa: E501 - if 'id_task_id_project' in params: - path_params['id.task_id.project'] = params['id_task_id_project'] # noqa: E501 - if 'id_task_id_domain' in params: - path_params['id.task_id.domain'] = params['id_task_id_domain'] # noqa: E501 - if 'id_task_id_name' in params: - path_params['id.task_id.name'] = params['id_task_id_name'] # noqa: E501 - if 'id_task_id_version' in params: - path_params['id.task_id.version'] = params['id_task_id_version'] # noqa: E501 - if 'id_retry_attempt' in params: - path_params['id.retry_attempt'] = params['id_retry_attempt'] # noqa: E501 + if 'id_project' in params: + path_params['id.project'] = params['id_project'] # noqa: E501 + if 'id_domain' in params: + path_params['id.domain'] = params['id_domain'] # noqa: E501 + if 'id_name' in params: + path_params['id.name'] = params['id_name'] # noqa: E501 + if 'id_version' in params: + path_params['id.version'] = params['id_version'] # noqa: E501 + + query_params = [] + if 'id_resource_type' in params: + query_params.append(('id.resource_type', params['id_resource_type'])) # noqa: E501 + if 'id_org' in params: + query_params.append(('id.org', params['id_org'])) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/json']) # noqa: E501 + + # Authentication setting + auth_settings = [] # noqa: E501 + + return self.api_client.call_api( + '/api/v1/workflows/{id.project}/{id.domain}/{id.name}/{id.version}', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='AdminWorkflow', # noqa: E501 + auth_settings=auth_settings, + async_req=params.get('async_req'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def get_workflow2(self, id_org, id_project, id_domain, id_name, id_version, **kwargs): # noqa: E501 + """Fetch a :ref:`ref_flyteidl.admin.Workflow` definition. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_workflow2(id_org, id_project, id_domain, id_name, id_version, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str id_org: Optional, org key applied to the resource. (required) + :param str id_project: Name of the project the resource belongs to. (required) + :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str id_name: User provided value for the resource. (required) + :param str id_version: Specific version of the resource. (required) + :param str id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects + :return: AdminWorkflow + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + if kwargs.get('async_req'): + return self.get_workflow2_with_http_info(id_org, id_project, id_domain, id_name, id_version, **kwargs) # noqa: E501 + else: + (data) = self.get_workflow2_with_http_info(id_org, id_project, id_domain, id_name, id_version, **kwargs) # noqa: E501 + return data + + def get_workflow2_with_http_info(self, id_org, id_project, id_domain, id_name, id_version, **kwargs): # noqa: E501 + """Fetch a :ref:`ref_flyteidl.admin.Workflow` definition. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_workflow2_with_http_info(id_org, id_project, id_domain, id_name, id_version, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str id_org: Optional, org key applied to the resource. (required) + :param str id_project: Name of the project the resource belongs to. (required) + :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str id_name: User provided value for the resource. (required) + :param str id_version: Specific version of the resource. (required) + :param str id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects + :return: AdminWorkflow + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['id_org', 'id_project', 'id_domain', 'id_name', 'id_version', 'id_resource_type'] # noqa: E501 + all_params.append('async_req') + all_params.append('_return_http_data_only') + all_params.append('_preload_content') + all_params.append('_request_timeout') + + params = locals() + for key, val in six.iteritems(params['kwargs']): + if key not in all_params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_workflow2" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'id_org' is set + if ('id_org' not in params or + params['id_org'] is None): + raise ValueError("Missing the required parameter `id_org` when calling `get_workflow2`") # noqa: E501 + # verify the required parameter 'id_project' is set + if ('id_project' not in params or + params['id_project'] is None): + raise ValueError("Missing the required parameter `id_project` when calling `get_workflow2`") # noqa: E501 + # verify the required parameter 'id_domain' is set + if ('id_domain' not in params or + params['id_domain'] is None): + raise ValueError("Missing the required parameter `id_domain` when calling `get_workflow2`") # noqa: E501 + # verify the required parameter 'id_name' is set + if ('id_name' not in params or + params['id_name'] is None): + raise ValueError("Missing the required parameter `id_name` when calling `get_workflow2`") # noqa: E501 + # verify the required parameter 'id_version' is set + if ('id_version' not in params or + params['id_version'] is None): + raise ValueError("Missing the required parameter `id_version` when calling `get_workflow2`") # noqa: E501 + + collection_formats = {} + + path_params = {} + if 'id_org' in params: + path_params['id.org'] = params['id_org'] # noqa: E501 + if 'id_project' in params: + path_params['id.project'] = params['id_project'] # noqa: E501 + if 'id_domain' in params: + path_params['id.domain'] = params['id_domain'] # noqa: E501 + if 'id_name' in params: + path_params['id.name'] = params['id_name'] # noqa: E501 + if 'id_version' in params: + path_params['id.version'] = params['id_version'] # noqa: E501 query_params = [] - if 'id_task_id_resource_type' in params: - query_params.append(('id.task_id.resource_type', params['id_task_id_resource_type'])) # noqa: E501 - if 'id_task_id_org' in params: - query_params.append(('id.task_id.org', params['id_task_id_org'])) # noqa: E501 - if 'id_node_execution_id_execution_id_org' in params: - query_params.append(('id.node_execution_id.execution_id.org', params['id_node_execution_id_execution_id_org'])) # noqa: E501 + if 'id_resource_type' in params: + query_params.append(('id.resource_type', params['id_resource_type'])) # noqa: E501 header_params = {} @@ -4532,14 +6145,14 @@ def get_task_execution_with_http_info(self, id_node_execution_id_execution_id_pr auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/task_executions/{id.node_execution_id.execution_id.project}/{id.node_execution_id.execution_id.domain}/{id.node_execution_id.execution_id.name}/{id.node_execution_id.node_id}/{id.task_id.project}/{id.task_id.domain}/{id.task_id.name}/{id.task_id.version}/{id.retry_attempt}', 'GET', + '/api/v1/workflows/org/{id.org}/{id.project}/{id.domain}/{id.name}/{id.version}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='FlyteidladminTaskExecution', # noqa: E501 + response_type='AdminWorkflow', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -4547,65 +6160,51 @@ def get_task_execution_with_http_info(self, id_node_execution_id_execution_id_pr _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def get_task_execution2(self, id_node_execution_id_execution_id_org, id_node_execution_id_execution_id_project, id_node_execution_id_execution_id_domain, id_node_execution_id_execution_id_name, id_node_execution_id_node_id, id_task_id_project, id_task_id_domain, id_task_id_name, id_task_id_version, id_retry_attempt, **kwargs): # noqa: E501 - """Fetches a :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 + def get_workflow_attributes(self, project, domain, workflow, **kwargs): # noqa: E501 + """Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_task_execution2(id_node_execution_id_execution_id_org, id_node_execution_id_execution_id_project, id_node_execution_id_execution_id_domain, id_node_execution_id_execution_id_name, id_node_execution_id_node_id, id_task_id_project, id_task_id_domain, id_task_id_name, id_task_id_version, id_retry_attempt, async_req=True) + >>> thread = api.get_workflow_attributes(project, domain, workflow, async_req=True) >>> result = thread.get() :param async_req bool - :param str id_node_execution_id_execution_id_org: Optional, org key applied to the resource. (required) - :param str id_node_execution_id_execution_id_project: Name of the project the resource belongs to. (required) - :param str id_node_execution_id_execution_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_node_execution_id_execution_id_name: User or system provided value for the resource. (required) - :param str id_node_execution_id_node_id: (required) - :param str id_task_id_project: Name of the project the resource belongs to. (required) - :param str id_task_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_task_id_name: User provided value for the resource. (required) - :param str id_task_id_version: Specific version of the resource. (required) - :param int id_retry_attempt: (required) - :param str id_task_id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects - :param str id_task_id_org: Optional, org key applied to the resource. - :return: FlyteidladminTaskExecution + :param str project: Unique project id which this set of attributes references. +required (required) + :param str domain: Unique domain id which this set of attributes references. +required (required) + :param str workflow: Workflow name which this set of attributes references. +required (required) + :param str resource_type: Which type of matchable attributes to return. +required. - TASK_RESOURCE: Applies to customizable task resource requests and limits. - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources. - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment. - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec. - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type. - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides. - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run. + :param str org: Optional, org key applied to the attributes. + :return: AdminWorkflowAttributesGetResponse If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.get_task_execution2_with_http_info(id_node_execution_id_execution_id_org, id_node_execution_id_execution_id_project, id_node_execution_id_execution_id_domain, id_node_execution_id_execution_id_name, id_node_execution_id_node_id, id_task_id_project, id_task_id_domain, id_task_id_name, id_task_id_version, id_retry_attempt, **kwargs) # noqa: E501 + return self.get_workflow_attributes_with_http_info(project, domain, workflow, **kwargs) # noqa: E501 else: - (data) = self.get_task_execution2_with_http_info(id_node_execution_id_execution_id_org, id_node_execution_id_execution_id_project, id_node_execution_id_execution_id_domain, id_node_execution_id_execution_id_name, id_node_execution_id_node_id, id_task_id_project, id_task_id_domain, id_task_id_name, id_task_id_version, id_retry_attempt, **kwargs) # noqa: E501 + (data) = self.get_workflow_attributes_with_http_info(project, domain, workflow, **kwargs) # noqa: E501 return data - def get_task_execution2_with_http_info(self, id_node_execution_id_execution_id_org, id_node_execution_id_execution_id_project, id_node_execution_id_execution_id_domain, id_node_execution_id_execution_id_name, id_node_execution_id_node_id, id_task_id_project, id_task_id_domain, id_task_id_name, id_task_id_version, id_retry_attempt, **kwargs): # noqa: E501 - """Fetches a :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 + def get_workflow_attributes_with_http_info(self, project, domain, workflow, **kwargs): # noqa: E501 + """Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_task_execution2_with_http_info(id_node_execution_id_execution_id_org, id_node_execution_id_execution_id_project, id_node_execution_id_execution_id_domain, id_node_execution_id_execution_id_name, id_node_execution_id_node_id, id_task_id_project, id_task_id_domain, id_task_id_name, id_task_id_version, id_retry_attempt, async_req=True) + >>> thread = api.get_workflow_attributes_with_http_info(project, domain, workflow, async_req=True) >>> result = thread.get() :param async_req bool - :param str id_node_execution_id_execution_id_org: Optional, org key applied to the resource. (required) - :param str id_node_execution_id_execution_id_project: Name of the project the resource belongs to. (required) - :param str id_node_execution_id_execution_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_node_execution_id_execution_id_name: User or system provided value for the resource. (required) - :param str id_node_execution_id_node_id: (required) - :param str id_task_id_project: Name of the project the resource belongs to. (required) - :param str id_task_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_task_id_name: User provided value for the resource. (required) - :param str id_task_id_version: Specific version of the resource. (required) - :param int id_retry_attempt: (required) - :param str id_task_id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects - :param str id_task_id_org: Optional, org key applied to the resource. - :return: FlyteidladminTaskExecution + :param str project: Unique project id which this set of attributes references. +required (required) + :param str domain: Unique domain id which this set of attributes references. +required (required) + :param str workflow: Workflow name which this set of attributes references. +required (required) + :param str resource_type: Which type of matchable attributes to return. +required. - TASK_RESOURCE: Applies to customizable task resource requests and limits. - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources. - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment. - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec. - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type. - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides. - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run. + :param str org: Optional, org key applied to the attributes. + :return: AdminWorkflowAttributesGetResponse If the method is called asynchronously, returns the request thread. """ - all_params = ['id_node_execution_id_execution_id_org', 'id_node_execution_id_execution_id_project', 'id_node_execution_id_execution_id_domain', 'id_node_execution_id_execution_id_name', 'id_node_execution_id_node_id', 'id_task_id_project', 'id_task_id_domain', 'id_task_id_name', 'id_task_id_version', 'id_retry_attempt', 'id_task_id_resource_type', 'id_task_id_org'] # noqa: E501 + all_params = ['project', 'domain', 'workflow', 'resource_type', 'org'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -4616,80 +6215,38 @@ def get_task_execution2_with_http_info(self, id_node_execution_id_execution_id_o if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method get_task_execution2" % key + " to method get_workflow_attributes" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'id_node_execution_id_execution_id_org' is set - if ('id_node_execution_id_execution_id_org' not in params or - params['id_node_execution_id_execution_id_org'] is None): - raise ValueError("Missing the required parameter `id_node_execution_id_execution_id_org` when calling `get_task_execution2`") # noqa: E501 - # verify the required parameter 'id_node_execution_id_execution_id_project' is set - if ('id_node_execution_id_execution_id_project' not in params or - params['id_node_execution_id_execution_id_project'] is None): - raise ValueError("Missing the required parameter `id_node_execution_id_execution_id_project` when calling `get_task_execution2`") # noqa: E501 - # verify the required parameter 'id_node_execution_id_execution_id_domain' is set - if ('id_node_execution_id_execution_id_domain' not in params or - params['id_node_execution_id_execution_id_domain'] is None): - raise ValueError("Missing the required parameter `id_node_execution_id_execution_id_domain` when calling `get_task_execution2`") # noqa: E501 - # verify the required parameter 'id_node_execution_id_execution_id_name' is set - if ('id_node_execution_id_execution_id_name' not in params or - params['id_node_execution_id_execution_id_name'] is None): - raise ValueError("Missing the required parameter `id_node_execution_id_execution_id_name` when calling `get_task_execution2`") # noqa: E501 - # verify the required parameter 'id_node_execution_id_node_id' is set - if ('id_node_execution_id_node_id' not in params or - params['id_node_execution_id_node_id'] is None): - raise ValueError("Missing the required parameter `id_node_execution_id_node_id` when calling `get_task_execution2`") # noqa: E501 - # verify the required parameter 'id_task_id_project' is set - if ('id_task_id_project' not in params or - params['id_task_id_project'] is None): - raise ValueError("Missing the required parameter `id_task_id_project` when calling `get_task_execution2`") # noqa: E501 - # verify the required parameter 'id_task_id_domain' is set - if ('id_task_id_domain' not in params or - params['id_task_id_domain'] is None): - raise ValueError("Missing the required parameter `id_task_id_domain` when calling `get_task_execution2`") # noqa: E501 - # verify the required parameter 'id_task_id_name' is set - if ('id_task_id_name' not in params or - params['id_task_id_name'] is None): - raise ValueError("Missing the required parameter `id_task_id_name` when calling `get_task_execution2`") # noqa: E501 - # verify the required parameter 'id_task_id_version' is set - if ('id_task_id_version' not in params or - params['id_task_id_version'] is None): - raise ValueError("Missing the required parameter `id_task_id_version` when calling `get_task_execution2`") # noqa: E501 - # verify the required parameter 'id_retry_attempt' is set - if ('id_retry_attempt' not in params or - params['id_retry_attempt'] is None): - raise ValueError("Missing the required parameter `id_retry_attempt` when calling `get_task_execution2`") # noqa: E501 + # verify the required parameter 'project' is set + if ('project' not in params or + params['project'] is None): + raise ValueError("Missing the required parameter `project` when calling `get_workflow_attributes`") # noqa: E501 + # verify the required parameter 'domain' is set + if ('domain' not in params or + params['domain'] is None): + raise ValueError("Missing the required parameter `domain` when calling `get_workflow_attributes`") # noqa: E501 + # verify the required parameter 'workflow' is set + if ('workflow' not in params or + params['workflow'] is None): + raise ValueError("Missing the required parameter `workflow` when calling `get_workflow_attributes`") # noqa: E501 collection_formats = {} path_params = {} - if 'id_node_execution_id_execution_id_org' in params: - path_params['id.node_execution_id.execution_id.org'] = params['id_node_execution_id_execution_id_org'] # noqa: E501 - if 'id_node_execution_id_execution_id_project' in params: - path_params['id.node_execution_id.execution_id.project'] = params['id_node_execution_id_execution_id_project'] # noqa: E501 - if 'id_node_execution_id_execution_id_domain' in params: - path_params['id.node_execution_id.execution_id.domain'] = params['id_node_execution_id_execution_id_domain'] # noqa: E501 - if 'id_node_execution_id_execution_id_name' in params: - path_params['id.node_execution_id.execution_id.name'] = params['id_node_execution_id_execution_id_name'] # noqa: E501 - if 'id_node_execution_id_node_id' in params: - path_params['id.node_execution_id.node_id'] = params['id_node_execution_id_node_id'] # noqa: E501 - if 'id_task_id_project' in params: - path_params['id.task_id.project'] = params['id_task_id_project'] # noqa: E501 - if 'id_task_id_domain' in params: - path_params['id.task_id.domain'] = params['id_task_id_domain'] # noqa: E501 - if 'id_task_id_name' in params: - path_params['id.task_id.name'] = params['id_task_id_name'] # noqa: E501 - if 'id_task_id_version' in params: - path_params['id.task_id.version'] = params['id_task_id_version'] # noqa: E501 - if 'id_retry_attempt' in params: - path_params['id.retry_attempt'] = params['id_retry_attempt'] # noqa: E501 + if 'project' in params: + path_params['project'] = params['project'] # noqa: E501 + if 'domain' in params: + path_params['domain'] = params['domain'] # noqa: E501 + if 'workflow' in params: + path_params['workflow'] = params['workflow'] # noqa: E501 query_params = [] - if 'id_task_id_resource_type' in params: - query_params.append(('id.task_id.resource_type', params['id_task_id_resource_type'])) # noqa: E501 - if 'id_task_id_org' in params: - query_params.append(('id.task_id.org', params['id_task_id_org'])) # noqa: E501 + if 'resource_type' in params: + query_params.append(('resource_type', params['resource_type'])) # noqa: E501 + if 'org' in params: + query_params.append(('org', params['org'])) # noqa: E501 header_params = {} @@ -4709,14 +6266,14 @@ def get_task_execution2_with_http_info(self, id_node_execution_id_execution_id_o auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/task_executions/org/{id.node_execution_id.execution_id.org}/{id.node_execution_id.execution_id.project}/{id.node_execution_id.execution_id.domain}/{id.node_execution_id.execution_id.name}/{id.node_execution_id.node_id}/{id.task_id.project}/{id.task_id.domain}/{id.task_id.name}/{id.task_id.version}/{id.retry_attempt}', 'GET', + '/api/v1/workflow_attributes/{project}/{domain}/{workflow}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='FlyteidladminTaskExecution', # noqa: E501 + response_type='AdminWorkflowAttributesGetResponse', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -4724,65 +6281,51 @@ def get_task_execution2_with_http_info(self, id_node_execution_id_execution_id_o _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def get_task_execution_data(self, id_node_execution_id_execution_id_project, id_node_execution_id_execution_id_domain, id_node_execution_id_execution_id_name, id_node_execution_id_node_id, id_task_id_project, id_task_id_domain, id_task_id_name, id_task_id_version, id_retry_attempt, **kwargs): # noqa: E501 - """Fetches input and output data for a :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 + def get_workflow_attributes2(self, org, project, domain, workflow, **kwargs): # noqa: E501 + """Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_task_execution_data(id_node_execution_id_execution_id_project, id_node_execution_id_execution_id_domain, id_node_execution_id_execution_id_name, id_node_execution_id_node_id, id_task_id_project, id_task_id_domain, id_task_id_name, id_task_id_version, id_retry_attempt, async_req=True) + >>> thread = api.get_workflow_attributes2(org, project, domain, workflow, async_req=True) >>> result = thread.get() :param async_req bool - :param str id_node_execution_id_execution_id_project: Name of the project the resource belongs to. (required) - :param str id_node_execution_id_execution_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_node_execution_id_execution_id_name: User or system provided value for the resource. (required) - :param str id_node_execution_id_node_id: (required) - :param str id_task_id_project: Name of the project the resource belongs to. (required) - :param str id_task_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_task_id_name: User provided value for the resource. (required) - :param str id_task_id_version: Specific version of the resource. (required) - :param int id_retry_attempt: (required) - :param str id_task_id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects - :param str id_task_id_org: Optional, org key applied to the resource. - :param str id_node_execution_id_execution_id_org: Optional, org key applied to the resource. - :return: AdminTaskExecutionGetDataResponse + :param str org: Optional, org key applied to the attributes. (required) + :param str project: Unique project id which this set of attributes references. +required (required) + :param str domain: Unique domain id which this set of attributes references. +required (required) + :param str workflow: Workflow name which this set of attributes references. +required (required) + :param str resource_type: Which type of matchable attributes to return. +required. - TASK_RESOURCE: Applies to customizable task resource requests and limits. - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources. - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment. - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec. - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type. - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides. - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run. + :return: AdminWorkflowAttributesGetResponse If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.get_task_execution_data_with_http_info(id_node_execution_id_execution_id_project, id_node_execution_id_execution_id_domain, id_node_execution_id_execution_id_name, id_node_execution_id_node_id, id_task_id_project, id_task_id_domain, id_task_id_name, id_task_id_version, id_retry_attempt, **kwargs) # noqa: E501 + return self.get_workflow_attributes2_with_http_info(org, project, domain, workflow, **kwargs) # noqa: E501 else: - (data) = self.get_task_execution_data_with_http_info(id_node_execution_id_execution_id_project, id_node_execution_id_execution_id_domain, id_node_execution_id_execution_id_name, id_node_execution_id_node_id, id_task_id_project, id_task_id_domain, id_task_id_name, id_task_id_version, id_retry_attempt, **kwargs) # noqa: E501 + (data) = self.get_workflow_attributes2_with_http_info(org, project, domain, workflow, **kwargs) # noqa: E501 return data - def get_task_execution_data_with_http_info(self, id_node_execution_id_execution_id_project, id_node_execution_id_execution_id_domain, id_node_execution_id_execution_id_name, id_node_execution_id_node_id, id_task_id_project, id_task_id_domain, id_task_id_name, id_task_id_version, id_retry_attempt, **kwargs): # noqa: E501 - """Fetches input and output data for a :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 + def get_workflow_attributes2_with_http_info(self, org, project, domain, workflow, **kwargs): # noqa: E501 + """Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_task_execution_data_with_http_info(id_node_execution_id_execution_id_project, id_node_execution_id_execution_id_domain, id_node_execution_id_execution_id_name, id_node_execution_id_node_id, id_task_id_project, id_task_id_domain, id_task_id_name, id_task_id_version, id_retry_attempt, async_req=True) + >>> thread = api.get_workflow_attributes2_with_http_info(org, project, domain, workflow, async_req=True) >>> result = thread.get() :param async_req bool - :param str id_node_execution_id_execution_id_project: Name of the project the resource belongs to. (required) - :param str id_node_execution_id_execution_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_node_execution_id_execution_id_name: User or system provided value for the resource. (required) - :param str id_node_execution_id_node_id: (required) - :param str id_task_id_project: Name of the project the resource belongs to. (required) - :param str id_task_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_task_id_name: User provided value for the resource. (required) - :param str id_task_id_version: Specific version of the resource. (required) - :param int id_retry_attempt: (required) - :param str id_task_id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects - :param str id_task_id_org: Optional, org key applied to the resource. - :param str id_node_execution_id_execution_id_org: Optional, org key applied to the resource. - :return: AdminTaskExecutionGetDataResponse + :param str org: Optional, org key applied to the attributes. (required) + :param str project: Unique project id which this set of attributes references. +required (required) + :param str domain: Unique domain id which this set of attributes references. +required (required) + :param str workflow: Workflow name which this set of attributes references. +required (required) + :param str resource_type: Which type of matchable attributes to return. +required. - TASK_RESOURCE: Applies to customizable task resource requests and limits. - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources. - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment. - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec. - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type. - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides. - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run. + :return: AdminWorkflowAttributesGetResponse If the method is called asynchronously, returns the request thread. """ - all_params = ['id_node_execution_id_execution_id_project', 'id_node_execution_id_execution_id_domain', 'id_node_execution_id_execution_id_name', 'id_node_execution_id_node_id', 'id_task_id_project', 'id_task_id_domain', 'id_task_id_name', 'id_task_id_version', 'id_retry_attempt', 'id_task_id_resource_type', 'id_task_id_org', 'id_node_execution_id_execution_id_org'] # noqa: E501 + all_params = ['org', 'project', 'domain', 'workflow', 'resource_type'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -4793,76 +6336,42 @@ def get_task_execution_data_with_http_info(self, id_node_execution_id_execution_ if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method get_task_execution_data" % key - ) - params[key] = val - del params['kwargs'] - # verify the required parameter 'id_node_execution_id_execution_id_project' is set - if ('id_node_execution_id_execution_id_project' not in params or - params['id_node_execution_id_execution_id_project'] is None): - raise ValueError("Missing the required parameter `id_node_execution_id_execution_id_project` when calling `get_task_execution_data`") # noqa: E501 - # verify the required parameter 'id_node_execution_id_execution_id_domain' is set - if ('id_node_execution_id_execution_id_domain' not in params or - params['id_node_execution_id_execution_id_domain'] is None): - raise ValueError("Missing the required parameter `id_node_execution_id_execution_id_domain` when calling `get_task_execution_data`") # noqa: E501 - # verify the required parameter 'id_node_execution_id_execution_id_name' is set - if ('id_node_execution_id_execution_id_name' not in params or - params['id_node_execution_id_execution_id_name'] is None): - raise ValueError("Missing the required parameter `id_node_execution_id_execution_id_name` when calling `get_task_execution_data`") # noqa: E501 - # verify the required parameter 'id_node_execution_id_node_id' is set - if ('id_node_execution_id_node_id' not in params or - params['id_node_execution_id_node_id'] is None): - raise ValueError("Missing the required parameter `id_node_execution_id_node_id` when calling `get_task_execution_data`") # noqa: E501 - # verify the required parameter 'id_task_id_project' is set - if ('id_task_id_project' not in params or - params['id_task_id_project'] is None): - raise ValueError("Missing the required parameter `id_task_id_project` when calling `get_task_execution_data`") # noqa: E501 - # verify the required parameter 'id_task_id_domain' is set - if ('id_task_id_domain' not in params or - params['id_task_id_domain'] is None): - raise ValueError("Missing the required parameter `id_task_id_domain` when calling `get_task_execution_data`") # noqa: E501 - # verify the required parameter 'id_task_id_name' is set - if ('id_task_id_name' not in params or - params['id_task_id_name'] is None): - raise ValueError("Missing the required parameter `id_task_id_name` when calling `get_task_execution_data`") # noqa: E501 - # verify the required parameter 'id_task_id_version' is set - if ('id_task_id_version' not in params or - params['id_task_id_version'] is None): - raise ValueError("Missing the required parameter `id_task_id_version` when calling `get_task_execution_data`") # noqa: E501 - # verify the required parameter 'id_retry_attempt' is set - if ('id_retry_attempt' not in params or - params['id_retry_attempt'] is None): - raise ValueError("Missing the required parameter `id_retry_attempt` when calling `get_task_execution_data`") # noqa: E501 + " to method get_workflow_attributes2" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'org' is set + if ('org' not in params or + params['org'] is None): + raise ValueError("Missing the required parameter `org` when calling `get_workflow_attributes2`") # noqa: E501 + # verify the required parameter 'project' is set + if ('project' not in params or + params['project'] is None): + raise ValueError("Missing the required parameter `project` when calling `get_workflow_attributes2`") # noqa: E501 + # verify the required parameter 'domain' is set + if ('domain' not in params or + params['domain'] is None): + raise ValueError("Missing the required parameter `domain` when calling `get_workflow_attributes2`") # noqa: E501 + # verify the required parameter 'workflow' is set + if ('workflow' not in params or + params['workflow'] is None): + raise ValueError("Missing the required parameter `workflow` when calling `get_workflow_attributes2`") # noqa: E501 collection_formats = {} path_params = {} - if 'id_node_execution_id_execution_id_project' in params: - path_params['id.node_execution_id.execution_id.project'] = params['id_node_execution_id_execution_id_project'] # noqa: E501 - if 'id_node_execution_id_execution_id_domain' in params: - path_params['id.node_execution_id.execution_id.domain'] = params['id_node_execution_id_execution_id_domain'] # noqa: E501 - if 'id_node_execution_id_execution_id_name' in params: - path_params['id.node_execution_id.execution_id.name'] = params['id_node_execution_id_execution_id_name'] # noqa: E501 - if 'id_node_execution_id_node_id' in params: - path_params['id.node_execution_id.node_id'] = params['id_node_execution_id_node_id'] # noqa: E501 - if 'id_task_id_project' in params: - path_params['id.task_id.project'] = params['id_task_id_project'] # noqa: E501 - if 'id_task_id_domain' in params: - path_params['id.task_id.domain'] = params['id_task_id_domain'] # noqa: E501 - if 'id_task_id_name' in params: - path_params['id.task_id.name'] = params['id_task_id_name'] # noqa: E501 - if 'id_task_id_version' in params: - path_params['id.task_id.version'] = params['id_task_id_version'] # noqa: E501 - if 'id_retry_attempt' in params: - path_params['id.retry_attempt'] = params['id_retry_attempt'] # noqa: E501 + if 'org' in params: + path_params['org'] = params['org'] # noqa: E501 + if 'project' in params: + path_params['project'] = params['project'] # noqa: E501 + if 'domain' in params: + path_params['domain'] = params['domain'] # noqa: E501 + if 'workflow' in params: + path_params['workflow'] = params['workflow'] # noqa: E501 query_params = [] - if 'id_task_id_resource_type' in params: - query_params.append(('id.task_id.resource_type', params['id_task_id_resource_type'])) # noqa: E501 - if 'id_task_id_org' in params: - query_params.append(('id.task_id.org', params['id_task_id_org'])) # noqa: E501 - if 'id_node_execution_id_execution_id_org' in params: - query_params.append(('id.node_execution_id.execution_id.org', params['id_node_execution_id_execution_id_org'])) # noqa: E501 + if 'resource_type' in params: + query_params.append(('resource_type', params['resource_type'])) # noqa: E501 header_params = {} @@ -4882,14 +6391,14 @@ def get_task_execution_data_with_http_info(self, id_node_execution_id_execution_ auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/data/task_executions/{id.node_execution_id.execution_id.project}/{id.node_execution_id.execution_id.domain}/{id.node_execution_id.execution_id.name}/{id.node_execution_id.node_id}/{id.task_id.project}/{id.task_id.domain}/{id.task_id.name}/{id.task_id.version}/{id.retry_attempt}', 'GET', + '/api/v1/workflow_attributes/org/{org}/{project}/{domain}/{workflow}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminTaskExecutionGetDataResponse', # noqa: E501 + response_type='AdminWorkflowAttributesGetResponse', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -4897,65 +6406,55 @@ def get_task_execution_data_with_http_info(self, id_node_execution_id_execution_ _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def get_task_execution_data2(self, id_node_execution_id_execution_id_org, id_node_execution_id_execution_id_project, id_node_execution_id_execution_id_domain, id_node_execution_id_execution_id_name, id_node_execution_id_node_id, id_task_id_project, id_task_id_domain, id_task_id_name, id_task_id_version, id_retry_attempt, **kwargs): # noqa: E501 - """Fetches input and output data for a :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 + def list_active_launch_plans(self, project, domain, **kwargs): # noqa: E501 + """List active versions of :ref:`ref_flyteidl.admin.LaunchPlan`. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_task_execution_data2(id_node_execution_id_execution_id_org, id_node_execution_id_execution_id_project, id_node_execution_id_execution_id_domain, id_node_execution_id_execution_id_name, id_node_execution_id_node_id, id_task_id_project, id_task_id_domain, id_task_id_name, id_task_id_version, id_retry_attempt, async_req=True) + >>> thread = api.list_active_launch_plans(project, domain, async_req=True) >>> result = thread.get() :param async_req bool - :param str id_node_execution_id_execution_id_org: Optional, org key applied to the resource. (required) - :param str id_node_execution_id_execution_id_project: Name of the project the resource belongs to. (required) - :param str id_node_execution_id_execution_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_node_execution_id_execution_id_name: User or system provided value for the resource. (required) - :param str id_node_execution_id_node_id: (required) - :param str id_task_id_project: Name of the project the resource belongs to. (required) - :param str id_task_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_task_id_name: User provided value for the resource. (required) - :param str id_task_id_version: Specific version of the resource. (required) - :param int id_retry_attempt: (required) - :param str id_task_id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects - :param str id_task_id_org: Optional, org key applied to the resource. - :return: AdminTaskExecutionGetDataResponse + :param str project: Name of the project that contains the identifiers. +required. (required) + :param str domain: Name of the domain the identifiers belongs to within the project. +required. (required) + :param int limit: Indicates the number of resources to be returned. +required. + :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. + :param str sort_by_key: Indicates an attribute to sort the response values. +required. + :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + :param str org: Optional, org key applied to the resource. + :return: AdminLaunchPlanList If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.get_task_execution_data2_with_http_info(id_node_execution_id_execution_id_org, id_node_execution_id_execution_id_project, id_node_execution_id_execution_id_domain, id_node_execution_id_execution_id_name, id_node_execution_id_node_id, id_task_id_project, id_task_id_domain, id_task_id_name, id_task_id_version, id_retry_attempt, **kwargs) # noqa: E501 + return self.list_active_launch_plans_with_http_info(project, domain, **kwargs) # noqa: E501 else: - (data) = self.get_task_execution_data2_with_http_info(id_node_execution_id_execution_id_org, id_node_execution_id_execution_id_project, id_node_execution_id_execution_id_domain, id_node_execution_id_execution_id_name, id_node_execution_id_node_id, id_task_id_project, id_task_id_domain, id_task_id_name, id_task_id_version, id_retry_attempt, **kwargs) # noqa: E501 + (data) = self.list_active_launch_plans_with_http_info(project, domain, **kwargs) # noqa: E501 return data - def get_task_execution_data2_with_http_info(self, id_node_execution_id_execution_id_org, id_node_execution_id_execution_id_project, id_node_execution_id_execution_id_domain, id_node_execution_id_execution_id_name, id_node_execution_id_node_id, id_task_id_project, id_task_id_domain, id_task_id_name, id_task_id_version, id_retry_attempt, **kwargs): # noqa: E501 - """Fetches input and output data for a :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 + def list_active_launch_plans_with_http_info(self, project, domain, **kwargs): # noqa: E501 + """List active versions of :ref:`ref_flyteidl.admin.LaunchPlan`. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_task_execution_data2_with_http_info(id_node_execution_id_execution_id_org, id_node_execution_id_execution_id_project, id_node_execution_id_execution_id_domain, id_node_execution_id_execution_id_name, id_node_execution_id_node_id, id_task_id_project, id_task_id_domain, id_task_id_name, id_task_id_version, id_retry_attempt, async_req=True) + >>> thread = api.list_active_launch_plans_with_http_info(project, domain, async_req=True) >>> result = thread.get() :param async_req bool - :param str id_node_execution_id_execution_id_org: Optional, org key applied to the resource. (required) - :param str id_node_execution_id_execution_id_project: Name of the project the resource belongs to. (required) - :param str id_node_execution_id_execution_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_node_execution_id_execution_id_name: User or system provided value for the resource. (required) - :param str id_node_execution_id_node_id: (required) - :param str id_task_id_project: Name of the project the resource belongs to. (required) - :param str id_task_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_task_id_name: User provided value for the resource. (required) - :param str id_task_id_version: Specific version of the resource. (required) - :param int id_retry_attempt: (required) - :param str id_task_id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects - :param str id_task_id_org: Optional, org key applied to the resource. - :return: AdminTaskExecutionGetDataResponse + :param str project: Name of the project that contains the identifiers. +required. (required) + :param str domain: Name of the domain the identifiers belongs to within the project. +required. (required) + :param int limit: Indicates the number of resources to be returned. +required. + :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. + :param str sort_by_key: Indicates an attribute to sort the response values. +required. + :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + :param str org: Optional, org key applied to the resource. + :return: AdminLaunchPlanList If the method is called asynchronously, returns the request thread. """ - all_params = ['id_node_execution_id_execution_id_org', 'id_node_execution_id_execution_id_project', 'id_node_execution_id_execution_id_domain', 'id_node_execution_id_execution_id_name', 'id_node_execution_id_node_id', 'id_task_id_project', 'id_task_id_domain', 'id_task_id_name', 'id_task_id_version', 'id_retry_attempt', 'id_task_id_resource_type', 'id_task_id_org'] # noqa: E501 + all_params = ['project', 'domain', 'limit', 'token', 'sort_by_key', 'sort_by_direction', 'org'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -4966,80 +6465,38 @@ def get_task_execution_data2_with_http_info(self, id_node_execution_id_execution if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method get_task_execution_data2" % key + " to method list_active_launch_plans" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'id_node_execution_id_execution_id_org' is set - if ('id_node_execution_id_execution_id_org' not in params or - params['id_node_execution_id_execution_id_org'] is None): - raise ValueError("Missing the required parameter `id_node_execution_id_execution_id_org` when calling `get_task_execution_data2`") # noqa: E501 - # verify the required parameter 'id_node_execution_id_execution_id_project' is set - if ('id_node_execution_id_execution_id_project' not in params or - params['id_node_execution_id_execution_id_project'] is None): - raise ValueError("Missing the required parameter `id_node_execution_id_execution_id_project` when calling `get_task_execution_data2`") # noqa: E501 - # verify the required parameter 'id_node_execution_id_execution_id_domain' is set - if ('id_node_execution_id_execution_id_domain' not in params or - params['id_node_execution_id_execution_id_domain'] is None): - raise ValueError("Missing the required parameter `id_node_execution_id_execution_id_domain` when calling `get_task_execution_data2`") # noqa: E501 - # verify the required parameter 'id_node_execution_id_execution_id_name' is set - if ('id_node_execution_id_execution_id_name' not in params or - params['id_node_execution_id_execution_id_name'] is None): - raise ValueError("Missing the required parameter `id_node_execution_id_execution_id_name` when calling `get_task_execution_data2`") # noqa: E501 - # verify the required parameter 'id_node_execution_id_node_id' is set - if ('id_node_execution_id_node_id' not in params or - params['id_node_execution_id_node_id'] is None): - raise ValueError("Missing the required parameter `id_node_execution_id_node_id` when calling `get_task_execution_data2`") # noqa: E501 - # verify the required parameter 'id_task_id_project' is set - if ('id_task_id_project' not in params or - params['id_task_id_project'] is None): - raise ValueError("Missing the required parameter `id_task_id_project` when calling `get_task_execution_data2`") # noqa: E501 - # verify the required parameter 'id_task_id_domain' is set - if ('id_task_id_domain' not in params or - params['id_task_id_domain'] is None): - raise ValueError("Missing the required parameter `id_task_id_domain` when calling `get_task_execution_data2`") # noqa: E501 - # verify the required parameter 'id_task_id_name' is set - if ('id_task_id_name' not in params or - params['id_task_id_name'] is None): - raise ValueError("Missing the required parameter `id_task_id_name` when calling `get_task_execution_data2`") # noqa: E501 - # verify the required parameter 'id_task_id_version' is set - if ('id_task_id_version' not in params or - params['id_task_id_version'] is None): - raise ValueError("Missing the required parameter `id_task_id_version` when calling `get_task_execution_data2`") # noqa: E501 - # verify the required parameter 'id_retry_attempt' is set - if ('id_retry_attempt' not in params or - params['id_retry_attempt'] is None): - raise ValueError("Missing the required parameter `id_retry_attempt` when calling `get_task_execution_data2`") # noqa: E501 + # verify the required parameter 'project' is set + if ('project' not in params or + params['project'] is None): + raise ValueError("Missing the required parameter `project` when calling `list_active_launch_plans`") # noqa: E501 + # verify the required parameter 'domain' is set + if ('domain' not in params or + params['domain'] is None): + raise ValueError("Missing the required parameter `domain` when calling `list_active_launch_plans`") # noqa: E501 collection_formats = {} path_params = {} - if 'id_node_execution_id_execution_id_org' in params: - path_params['id.node_execution_id.execution_id.org'] = params['id_node_execution_id_execution_id_org'] # noqa: E501 - if 'id_node_execution_id_execution_id_project' in params: - path_params['id.node_execution_id.execution_id.project'] = params['id_node_execution_id_execution_id_project'] # noqa: E501 - if 'id_node_execution_id_execution_id_domain' in params: - path_params['id.node_execution_id.execution_id.domain'] = params['id_node_execution_id_execution_id_domain'] # noqa: E501 - if 'id_node_execution_id_execution_id_name' in params: - path_params['id.node_execution_id.execution_id.name'] = params['id_node_execution_id_execution_id_name'] # noqa: E501 - if 'id_node_execution_id_node_id' in params: - path_params['id.node_execution_id.node_id'] = params['id_node_execution_id_node_id'] # noqa: E501 - if 'id_task_id_project' in params: - path_params['id.task_id.project'] = params['id_task_id_project'] # noqa: E501 - if 'id_task_id_domain' in params: - path_params['id.task_id.domain'] = params['id_task_id_domain'] # noqa: E501 - if 'id_task_id_name' in params: - path_params['id.task_id.name'] = params['id_task_id_name'] # noqa: E501 - if 'id_task_id_version' in params: - path_params['id.task_id.version'] = params['id_task_id_version'] # noqa: E501 - if 'id_retry_attempt' in params: - path_params['id.retry_attempt'] = params['id_retry_attempt'] # noqa: E501 + if 'project' in params: + path_params['project'] = params['project'] # noqa: E501 + if 'domain' in params: + path_params['domain'] = params['domain'] # noqa: E501 query_params = [] - if 'id_task_id_resource_type' in params: - query_params.append(('id.task_id.resource_type', params['id_task_id_resource_type'])) # noqa: E501 - if 'id_task_id_org' in params: - query_params.append(('id.task_id.org', params['id_task_id_org'])) # noqa: E501 + if 'limit' in params: + query_params.append(('limit', params['limit'])) # noqa: E501 + if 'token' in params: + query_params.append(('token', params['token'])) # noqa: E501 + if 'sort_by_key' in params: + query_params.append(('sort_by.key', params['sort_by_key'])) # noqa: E501 + if 'sort_by_direction' in params: + query_params.append(('sort_by.direction', params['sort_by_direction'])) # noqa: E501 + if 'org' in params: + query_params.append(('org', params['org'])) # noqa: E501 header_params = {} @@ -5059,14 +6516,14 @@ def get_task_execution_data2_with_http_info(self, id_node_execution_id_execution auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/data/task_executions/org/{id.node_execution_id.execution_id.org}/{id.node_execution_id.execution_id.project}/{id.node_execution_id.execution_id.domain}/{id.node_execution_id.execution_id.name}/{id.node_execution_id.node_id}/{id.task_id.project}/{id.task_id.domain}/{id.task_id.name}/{id.task_id.version}/{id.retry_attempt}', 'GET', + '/api/v1/active_launch_plans/{project}/{domain}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminTaskExecutionGetDataResponse', # noqa: E501 + response_type='AdminLaunchPlanList', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -5074,41 +6531,55 @@ def get_task_execution_data2_with_http_info(self, id_node_execution_id_execution _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def get_version(self, **kwargs): # noqa: E501 - """get_version # noqa: E501 + def list_active_launch_plans2(self, org, project, domain, **kwargs): # noqa: E501 + """List active versions of :ref:`ref_flyteidl.admin.LaunchPlan`. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_version(async_req=True) + >>> thread = api.list_active_launch_plans2(org, project, domain, async_req=True) >>> result = thread.get() :param async_req bool - :return: AdminGetVersionResponse + :param str org: Optional, org key applied to the resource. (required) + :param str project: Name of the project that contains the identifiers. +required. (required) + :param str domain: Name of the domain the identifiers belongs to within the project. +required. (required) + :param int limit: Indicates the number of resources to be returned. +required. + :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. + :param str sort_by_key: Indicates an attribute to sort the response values. +required. + :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + :return: AdminLaunchPlanList If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.get_version_with_http_info(**kwargs) # noqa: E501 + return self.list_active_launch_plans2_with_http_info(org, project, domain, **kwargs) # noqa: E501 else: - (data) = self.get_version_with_http_info(**kwargs) # noqa: E501 + (data) = self.list_active_launch_plans2_with_http_info(org, project, domain, **kwargs) # noqa: E501 return data - def get_version_with_http_info(self, **kwargs): # noqa: E501 - """get_version # noqa: E501 + def list_active_launch_plans2_with_http_info(self, org, project, domain, **kwargs): # noqa: E501 + """List active versions of :ref:`ref_flyteidl.admin.LaunchPlan`. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_version_with_http_info(async_req=True) + >>> thread = api.list_active_launch_plans2_with_http_info(org, project, domain, async_req=True) >>> result = thread.get() :param async_req bool - :return: AdminGetVersionResponse + :param str org: Optional, org key applied to the resource. (required) + :param str project: Name of the project that contains the identifiers. +required. (required) + :param str domain: Name of the domain the identifiers belongs to within the project. +required. (required) + :param int limit: Indicates the number of resources to be returned. +required. + :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. + :param str sort_by_key: Indicates an attribute to sort the response values. +required. + :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + :return: AdminLaunchPlanList If the method is called asynchronously, returns the request thread. """ - all_params = [] # noqa: E501 + all_params = ['org', 'project', 'domain', 'limit', 'token', 'sort_by_key', 'sort_by_direction'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -5119,16 +6590,42 @@ def get_version_with_http_info(self, **kwargs): # noqa: E501 if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method get_version" % key + " to method list_active_launch_plans2" % key ) params[key] = val del params['kwargs'] + # verify the required parameter 'org' is set + if ('org' not in params or + params['org'] is None): + raise ValueError("Missing the required parameter `org` when calling `list_active_launch_plans2`") # noqa: E501 + # verify the required parameter 'project' is set + if ('project' not in params or + params['project'] is None): + raise ValueError("Missing the required parameter `project` when calling `list_active_launch_plans2`") # noqa: E501 + # verify the required parameter 'domain' is set + if ('domain' not in params or + params['domain'] is None): + raise ValueError("Missing the required parameter `domain` when calling `list_active_launch_plans2`") # noqa: E501 collection_formats = {} path_params = {} + if 'org' in params: + path_params['org'] = params['org'] # noqa: E501 + if 'project' in params: + path_params['project'] = params['project'] # noqa: E501 + if 'domain' in params: + path_params['domain'] = params['domain'] # noqa: E501 query_params = [] + if 'limit' in params: + query_params.append(('limit', params['limit'])) # noqa: E501 + if 'token' in params: + query_params.append(('token', params['token'])) # noqa: E501 + if 'sort_by_key' in params: + query_params.append(('sort_by.key', params['sort_by_key'])) # noqa: E501 + if 'sort_by_direction' in params: + query_params.append(('sort_by.direction', params['sort_by_direction'])) # noqa: E501 header_params = {} @@ -5148,14 +6645,14 @@ def get_version_with_http_info(self, **kwargs): # noqa: E501 auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/version', 'GET', + '/api/v1/active_launch_plans/org/{org}/{project}/{domain}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminGetVersionResponse', # noqa: E501 + response_type='AdminLaunchPlanList', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -5163,53 +6660,61 @@ def get_version_with_http_info(self, **kwargs): # noqa: E501 _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def get_workflow(self, id_project, id_domain, id_name, id_version, **kwargs): # noqa: E501 - """Fetch a :ref:`ref_flyteidl.admin.Workflow` definition. # noqa: E501 + def list_description_entities(self, resource_type, id_project, id_domain, id_name, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.DescriptionEntity` definitions. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_workflow(id_project, id_domain, id_name, id_version, async_req=True) + >>> thread = api.list_description_entities(resource_type, id_project, id_domain, id_name, async_req=True) >>> result = thread.get() :param async_req bool + :param str resource_type: Identifies the specific type of resource that this identifier corresponds to. (required) :param str id_project: Name of the project the resource belongs to. (required) :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_name: User provided value for the resource. (required) - :param str id_version: Specific version of the resource. (required) - :param str id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects + :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) :param str id_org: Optional, org key applied to the resource. - :return: AdminWorkflow + :param int limit: Indicates the number of resources to be returned. +required. + :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. + :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. + :param str sort_by_key: Indicates an attribute to sort the response values. +required. + :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + :return: AdminDescriptionEntityList If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.get_workflow_with_http_info(id_project, id_domain, id_name, id_version, **kwargs) # noqa: E501 + return self.list_description_entities_with_http_info(resource_type, id_project, id_domain, id_name, **kwargs) # noqa: E501 else: - (data) = self.get_workflow_with_http_info(id_project, id_domain, id_name, id_version, **kwargs) # noqa: E501 + (data) = self.list_description_entities_with_http_info(resource_type, id_project, id_domain, id_name, **kwargs) # noqa: E501 return data - def get_workflow_with_http_info(self, id_project, id_domain, id_name, id_version, **kwargs): # noqa: E501 - """Fetch a :ref:`ref_flyteidl.admin.Workflow` definition. # noqa: E501 + def list_description_entities_with_http_info(self, resource_type, id_project, id_domain, id_name, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.DescriptionEntity` definitions. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_workflow_with_http_info(id_project, id_domain, id_name, id_version, async_req=True) + >>> thread = api.list_description_entities_with_http_info(resource_type, id_project, id_domain, id_name, async_req=True) >>> result = thread.get() :param async_req bool + :param str resource_type: Identifies the specific type of resource that this identifier corresponds to. (required) :param str id_project: Name of the project the resource belongs to. (required) :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_name: User provided value for the resource. (required) - :param str id_version: Specific version of the resource. (required) - :param str id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects + :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) :param str id_org: Optional, org key applied to the resource. - :return: AdminWorkflow + :param int limit: Indicates the number of resources to be returned. +required. + :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. + :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. + :param str sort_by_key: Indicates an attribute to sort the response values. +required. + :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + :return: AdminDescriptionEntityList If the method is called asynchronously, returns the request thread. """ - all_params = ['id_project', 'id_domain', 'id_name', 'id_version', 'id_resource_type', 'id_org'] # noqa: E501 + all_params = ['resource_type', 'id_project', 'id_domain', 'id_name', 'id_org', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -5220,44 +6725,52 @@ def get_workflow_with_http_info(self, id_project, id_domain, id_name, id_version if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method get_workflow" % key + " to method list_description_entities" % key ) params[key] = val del params['kwargs'] + # verify the required parameter 'resource_type' is set + if ('resource_type' not in params or + params['resource_type'] is None): + raise ValueError("Missing the required parameter `resource_type` when calling `list_description_entities`") # noqa: E501 # verify the required parameter 'id_project' is set if ('id_project' not in params or params['id_project'] is None): - raise ValueError("Missing the required parameter `id_project` when calling `get_workflow`") # noqa: E501 + raise ValueError("Missing the required parameter `id_project` when calling `list_description_entities`") # noqa: E501 # verify the required parameter 'id_domain' is set if ('id_domain' not in params or params['id_domain'] is None): - raise ValueError("Missing the required parameter `id_domain` when calling `get_workflow`") # noqa: E501 + raise ValueError("Missing the required parameter `id_domain` when calling `list_description_entities`") # noqa: E501 # verify the required parameter 'id_name' is set if ('id_name' not in params or params['id_name'] is None): - raise ValueError("Missing the required parameter `id_name` when calling `get_workflow`") # noqa: E501 - # verify the required parameter 'id_version' is set - if ('id_version' not in params or - params['id_version'] is None): - raise ValueError("Missing the required parameter `id_version` when calling `get_workflow`") # noqa: E501 + raise ValueError("Missing the required parameter `id_name` when calling `list_description_entities`") # noqa: E501 collection_formats = {} path_params = {} + if 'resource_type' in params: + path_params['resource_type'] = params['resource_type'] # noqa: E501 if 'id_project' in params: path_params['id.project'] = params['id_project'] # noqa: E501 if 'id_domain' in params: path_params['id.domain'] = params['id_domain'] # noqa: E501 if 'id_name' in params: path_params['id.name'] = params['id_name'] # noqa: E501 - if 'id_version' in params: - path_params['id.version'] = params['id_version'] # noqa: E501 query_params = [] - if 'id_resource_type' in params: - query_params.append(('id.resource_type', params['id_resource_type'])) # noqa: E501 if 'id_org' in params: query_params.append(('id.org', params['id_org'])) # noqa: E501 + if 'limit' in params: + query_params.append(('limit', params['limit'])) # noqa: E501 + if 'token' in params: + query_params.append(('token', params['token'])) # noqa: E501 + if 'filters' in params: + query_params.append(('filters', params['filters'])) # noqa: E501 + if 'sort_by_key' in params: + query_params.append(('sort_by.key', params['sort_by_key'])) # noqa: E501 + if 'sort_by_direction' in params: + query_params.append(('sort_by.direction', params['sort_by_direction'])) # noqa: E501 header_params = {} @@ -5277,14 +6790,14 @@ def get_workflow_with_http_info(self, id_project, id_domain, id_name, id_version auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/workflows/{id.project}/{id.domain}/{id.name}/{id.version}', 'GET', + '/api/v1/description_entities/{resource_type}/{id.project}/{id.domain}/{id.name}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminWorkflow', # noqa: E501 + response_type='AdminDescriptionEntityList', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -5292,53 +6805,61 @@ def get_workflow_with_http_info(self, id_project, id_domain, id_name, id_version _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def get_workflow2(self, id_org, id_project, id_domain, id_name, id_version, **kwargs): # noqa: E501 - """Fetch a :ref:`ref_flyteidl.admin.Workflow` definition. # noqa: E501 + def list_description_entities2(self, resource_type, id_org, id_project, id_domain, id_name, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.DescriptionEntity` definitions. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_workflow2(id_org, id_project, id_domain, id_name, id_version, async_req=True) + >>> thread = api.list_description_entities2(resource_type, id_org, id_project, id_domain, id_name, async_req=True) >>> result = thread.get() :param async_req bool + :param str resource_type: Identifies the specific type of resource that this identifier corresponds to. (required) :param str id_org: Optional, org key applied to the resource. (required) :param str id_project: Name of the project the resource belongs to. (required) :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_name: User provided value for the resource. (required) - :param str id_version: Specific version of the resource. (required) - :param str id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects - :return: AdminWorkflow + :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) + :param int limit: Indicates the number of resources to be returned. +required. + :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. + :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. + :param str sort_by_key: Indicates an attribute to sort the response values. +required. + :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + :return: AdminDescriptionEntityList If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.get_workflow2_with_http_info(id_org, id_project, id_domain, id_name, id_version, **kwargs) # noqa: E501 + return self.list_description_entities2_with_http_info(resource_type, id_org, id_project, id_domain, id_name, **kwargs) # noqa: E501 else: - (data) = self.get_workflow2_with_http_info(id_org, id_project, id_domain, id_name, id_version, **kwargs) # noqa: E501 + (data) = self.list_description_entities2_with_http_info(resource_type, id_org, id_project, id_domain, id_name, **kwargs) # noqa: E501 return data - def get_workflow2_with_http_info(self, id_org, id_project, id_domain, id_name, id_version, **kwargs): # noqa: E501 - """Fetch a :ref:`ref_flyteidl.admin.Workflow` definition. # noqa: E501 + def list_description_entities2_with_http_info(self, resource_type, id_org, id_project, id_domain, id_name, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.DescriptionEntity` definitions. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_workflow2_with_http_info(id_org, id_project, id_domain, id_name, id_version, async_req=True) + >>> thread = api.list_description_entities2_with_http_info(resource_type, id_org, id_project, id_domain, id_name, async_req=True) >>> result = thread.get() :param async_req bool + :param str resource_type: Identifies the specific type of resource that this identifier corresponds to. (required) :param str id_org: Optional, org key applied to the resource. (required) :param str id_project: Name of the project the resource belongs to. (required) :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_name: User provided value for the resource. (required) - :param str id_version: Specific version of the resource. (required) - :param str id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects - :return: AdminWorkflow + :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) + :param int limit: Indicates the number of resources to be returned. +required. + :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. + :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. + :param str sort_by_key: Indicates an attribute to sort the response values. +required. + :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + :return: AdminDescriptionEntityList If the method is called asynchronously, returns the request thread. """ - all_params = ['id_org', 'id_project', 'id_domain', 'id_name', 'id_version', 'id_resource_type'] # noqa: E501 + all_params = ['resource_type', 'id_org', 'id_project', 'id_domain', 'id_name', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -5349,34 +6870,36 @@ def get_workflow2_with_http_info(self, id_org, id_project, id_domain, id_name, i if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method get_workflow2" % key + " to method list_description_entities2" % key ) params[key] = val del params['kwargs'] + # verify the required parameter 'resource_type' is set + if ('resource_type' not in params or + params['resource_type'] is None): + raise ValueError("Missing the required parameter `resource_type` when calling `list_description_entities2`") # noqa: E501 # verify the required parameter 'id_org' is set if ('id_org' not in params or params['id_org'] is None): - raise ValueError("Missing the required parameter `id_org` when calling `get_workflow2`") # noqa: E501 + raise ValueError("Missing the required parameter `id_org` when calling `list_description_entities2`") # noqa: E501 # verify the required parameter 'id_project' is set if ('id_project' not in params or params['id_project'] is None): - raise ValueError("Missing the required parameter `id_project` when calling `get_workflow2`") # noqa: E501 + raise ValueError("Missing the required parameter `id_project` when calling `list_description_entities2`") # noqa: E501 # verify the required parameter 'id_domain' is set if ('id_domain' not in params or params['id_domain'] is None): - raise ValueError("Missing the required parameter `id_domain` when calling `get_workflow2`") # noqa: E501 + raise ValueError("Missing the required parameter `id_domain` when calling `list_description_entities2`") # noqa: E501 # verify the required parameter 'id_name' is set if ('id_name' not in params or params['id_name'] is None): - raise ValueError("Missing the required parameter `id_name` when calling `get_workflow2`") # noqa: E501 - # verify the required parameter 'id_version' is set - if ('id_version' not in params or - params['id_version'] is None): - raise ValueError("Missing the required parameter `id_version` when calling `get_workflow2`") # noqa: E501 + raise ValueError("Missing the required parameter `id_name` when calling `list_description_entities2`") # noqa: E501 collection_formats = {} path_params = {} + if 'resource_type' in params: + path_params['resource_type'] = params['resource_type'] # noqa: E501 if 'id_org' in params: path_params['id.org'] = params['id_org'] # noqa: E501 if 'id_project' in params: @@ -5385,12 +6908,18 @@ def get_workflow2_with_http_info(self, id_org, id_project, id_domain, id_name, i path_params['id.domain'] = params['id_domain'] # noqa: E501 if 'id_name' in params: path_params['id.name'] = params['id_name'] # noqa: E501 - if 'id_version' in params: - path_params['id.version'] = params['id_version'] # noqa: E501 query_params = [] - if 'id_resource_type' in params: - query_params.append(('id.resource_type', params['id_resource_type'])) # noqa: E501 + if 'limit' in params: + query_params.append(('limit', params['limit'])) # noqa: E501 + if 'token' in params: + query_params.append(('token', params['token'])) # noqa: E501 + if 'filters' in params: + query_params.append(('filters', params['filters'])) # noqa: E501 + if 'sort_by_key' in params: + query_params.append(('sort_by.key', params['sort_by_key'])) # noqa: E501 + if 'sort_by_direction' in params: + query_params.append(('sort_by.direction', params['sort_by_direction'])) # noqa: E501 header_params = {} @@ -5410,14 +6939,14 @@ def get_workflow2_with_http_info(self, id_org, id_project, id_domain, id_name, i auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/workflows/org/{id.org}/{id.project}/{id.domain}/{id.name}/{id.version}', 'GET', + '/api/v1/description_entities/{resource_type}/org/{id.org}/{id.project}/{id.domain}/{id.name}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminWorkflow', # noqa: E501 + response_type='AdminDescriptionEntityList', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -5425,51 +6954,61 @@ def get_workflow2_with_http_info(self, id_org, id_project, id_domain, id_name, i _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def get_workflow_attributes(self, project, domain, workflow, **kwargs): # noqa: E501 - """Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. # noqa: E501 + def list_description_entities3(self, resource_type, id_project, id_domain, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.DescriptionEntity` definitions. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_workflow_attributes(project, domain, workflow, async_req=True) + >>> thread = api.list_description_entities3(resource_type, id_project, id_domain, async_req=True) >>> result = thread.get() :param async_req bool - :param str project: Unique project id which this set of attributes references. +required (required) - :param str domain: Unique domain id which this set of attributes references. +required (required) - :param str workflow: Workflow name which this set of attributes references. +required (required) - :param str resource_type: Which type of matchable attributes to return. +required. - TASK_RESOURCE: Applies to customizable task resource requests and limits. - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources. - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment. - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec. - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type. - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides. - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run. - :param str org: Optional, org key applied to the attributes. - :return: AdminWorkflowAttributesGetResponse + :param str resource_type: Identifies the specific type of resource that this identifier corresponds to. (required) + :param str id_project: Name of the project the resource belongs to. (required) + :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. + :param str id_org: Optional, org key applied to the resource. + :param int limit: Indicates the number of resources to be returned. +required. + :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. + :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. + :param str sort_by_key: Indicates an attribute to sort the response values. +required. + :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + :return: AdminDescriptionEntityList If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.get_workflow_attributes_with_http_info(project, domain, workflow, **kwargs) # noqa: E501 + return self.list_description_entities3_with_http_info(resource_type, id_project, id_domain, **kwargs) # noqa: E501 else: - (data) = self.get_workflow_attributes_with_http_info(project, domain, workflow, **kwargs) # noqa: E501 + (data) = self.list_description_entities3_with_http_info(resource_type, id_project, id_domain, **kwargs) # noqa: E501 return data - def get_workflow_attributes_with_http_info(self, project, domain, workflow, **kwargs): # noqa: E501 - """Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. # noqa: E501 + def list_description_entities3_with_http_info(self, resource_type, id_project, id_domain, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.DescriptionEntity` definitions. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_workflow_attributes_with_http_info(project, domain, workflow, async_req=True) + >>> thread = api.list_description_entities3_with_http_info(resource_type, id_project, id_domain, async_req=True) >>> result = thread.get() :param async_req bool - :param str project: Unique project id which this set of attributes references. +required (required) - :param str domain: Unique domain id which this set of attributes references. +required (required) - :param str workflow: Workflow name which this set of attributes references. +required (required) - :param str resource_type: Which type of matchable attributes to return. +required. - TASK_RESOURCE: Applies to customizable task resource requests and limits. - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources. - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment. - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec. - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type. - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides. - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run. - :param str org: Optional, org key applied to the attributes. - :return: AdminWorkflowAttributesGetResponse + :param str resource_type: Identifies the specific type of resource that this identifier corresponds to. (required) + :param str id_project: Name of the project the resource belongs to. (required) + :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. + :param str id_org: Optional, org key applied to the resource. + :param int limit: Indicates the number of resources to be returned. +required. + :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. + :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. + :param str sort_by_key: Indicates an attribute to sort the response values. +required. + :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + :return: AdminDescriptionEntityList If the method is called asynchronously, returns the request thread. """ - all_params = ['project', 'domain', 'workflow', 'resource_type', 'org'] # noqa: E501 + all_params = ['resource_type', 'id_project', 'id_domain', 'id_name', 'id_org', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -5480,38 +7019,48 @@ def get_workflow_attributes_with_http_info(self, project, domain, workflow, **kw if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method get_workflow_attributes" % key + " to method list_description_entities3" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'project' is set - if ('project' not in params or - params['project'] is None): - raise ValueError("Missing the required parameter `project` when calling `get_workflow_attributes`") # noqa: E501 - # verify the required parameter 'domain' is set - if ('domain' not in params or - params['domain'] is None): - raise ValueError("Missing the required parameter `domain` when calling `get_workflow_attributes`") # noqa: E501 - # verify the required parameter 'workflow' is set - if ('workflow' not in params or - params['workflow'] is None): - raise ValueError("Missing the required parameter `workflow` when calling `get_workflow_attributes`") # noqa: E501 - - collection_formats = {} - - path_params = {} - if 'project' in params: - path_params['project'] = params['project'] # noqa: E501 - if 'domain' in params: - path_params['domain'] = params['domain'] # noqa: E501 - if 'workflow' in params: - path_params['workflow'] = params['workflow'] # noqa: E501 + # verify the required parameter 'resource_type' is set + if ('resource_type' not in params or + params['resource_type'] is None): + raise ValueError("Missing the required parameter `resource_type` when calling `list_description_entities3`") # noqa: E501 + # verify the required parameter 'id_project' is set + if ('id_project' not in params or + params['id_project'] is None): + raise ValueError("Missing the required parameter `id_project` when calling `list_description_entities3`") # noqa: E501 + # verify the required parameter 'id_domain' is set + if ('id_domain' not in params or + params['id_domain'] is None): + raise ValueError("Missing the required parameter `id_domain` when calling `list_description_entities3`") # noqa: E501 - query_params = [] + collection_formats = {} + + path_params = {} if 'resource_type' in params: - query_params.append(('resource_type', params['resource_type'])) # noqa: E501 - if 'org' in params: - query_params.append(('org', params['org'])) # noqa: E501 + path_params['resource_type'] = params['resource_type'] # noqa: E501 + if 'id_project' in params: + path_params['id.project'] = params['id_project'] # noqa: E501 + if 'id_domain' in params: + path_params['id.domain'] = params['id_domain'] # noqa: E501 + + query_params = [] + if 'id_name' in params: + query_params.append(('id.name', params['id_name'])) # noqa: E501 + if 'id_org' in params: + query_params.append(('id.org', params['id_org'])) # noqa: E501 + if 'limit' in params: + query_params.append(('limit', params['limit'])) # noqa: E501 + if 'token' in params: + query_params.append(('token', params['token'])) # noqa: E501 + if 'filters' in params: + query_params.append(('filters', params['filters'])) # noqa: E501 + if 'sort_by_key' in params: + query_params.append(('sort_by.key', params['sort_by_key'])) # noqa: E501 + if 'sort_by_direction' in params: + query_params.append(('sort_by.direction', params['sort_by_direction'])) # noqa: E501 header_params = {} @@ -5531,14 +7080,14 @@ def get_workflow_attributes_with_http_info(self, project, domain, workflow, **kw auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/workflow_attributes/{project}/{domain}/{workflow}', 'GET', + '/api/v1/description_entities/{resource_type}/{id.project}/{id.domain}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminWorkflowAttributesGetResponse', # noqa: E501 + response_type='AdminDescriptionEntityList', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -5546,51 +7095,61 @@ def get_workflow_attributes_with_http_info(self, project, domain, workflow, **kw _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def get_workflow_attributes2(self, org, project, domain, workflow, **kwargs): # noqa: E501 - """Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. # noqa: E501 + def list_description_entities4(self, resource_type, id_org, id_project, id_domain, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.DescriptionEntity` definitions. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_workflow_attributes2(org, project, domain, workflow, async_req=True) + >>> thread = api.list_description_entities4(resource_type, id_org, id_project, id_domain, async_req=True) >>> result = thread.get() :param async_req bool - :param str org: Optional, org key applied to the attributes. (required) - :param str project: Unique project id which this set of attributes references. +required (required) - :param str domain: Unique domain id which this set of attributes references. +required (required) - :param str workflow: Workflow name which this set of attributes references. +required (required) - :param str resource_type: Which type of matchable attributes to return. +required. - TASK_RESOURCE: Applies to customizable task resource requests and limits. - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources. - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment. - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec. - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type. - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides. - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run. - :return: AdminWorkflowAttributesGetResponse + :param str resource_type: Identifies the specific type of resource that this identifier corresponds to. (required) + :param str id_org: Optional, org key applied to the resource. (required) + :param str id_project: Name of the project the resource belongs to. (required) + :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. + :param int limit: Indicates the number of resources to be returned. +required. + :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. + :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. + :param str sort_by_key: Indicates an attribute to sort the response values. +required. + :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + :return: AdminDescriptionEntityList If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.get_workflow_attributes2_with_http_info(org, project, domain, workflow, **kwargs) # noqa: E501 + return self.list_description_entities4_with_http_info(resource_type, id_org, id_project, id_domain, **kwargs) # noqa: E501 else: - (data) = self.get_workflow_attributes2_with_http_info(org, project, domain, workflow, **kwargs) # noqa: E501 + (data) = self.list_description_entities4_with_http_info(resource_type, id_org, id_project, id_domain, **kwargs) # noqa: E501 return data - def get_workflow_attributes2_with_http_info(self, org, project, domain, workflow, **kwargs): # noqa: E501 - """Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. # noqa: E501 + def list_description_entities4_with_http_info(self, resource_type, id_org, id_project, id_domain, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.DescriptionEntity` definitions. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_workflow_attributes2_with_http_info(org, project, domain, workflow, async_req=True) + >>> thread = api.list_description_entities4_with_http_info(resource_type, id_org, id_project, id_domain, async_req=True) >>> result = thread.get() :param async_req bool - :param str org: Optional, org key applied to the attributes. (required) - :param str project: Unique project id which this set of attributes references. +required (required) - :param str domain: Unique domain id which this set of attributes references. +required (required) - :param str workflow: Workflow name which this set of attributes references. +required (required) - :param str resource_type: Which type of matchable attributes to return. +required. - TASK_RESOURCE: Applies to customizable task resource requests and limits. - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources. - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment. - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec. - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type. - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides. - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run. - :return: AdminWorkflowAttributesGetResponse + :param str resource_type: Identifies the specific type of resource that this identifier corresponds to. (required) + :param str id_org: Optional, org key applied to the resource. (required) + :param str id_project: Name of the project the resource belongs to. (required) + :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. + :param int limit: Indicates the number of resources to be returned. +required. + :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. + :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. + :param str sort_by_key: Indicates an attribute to sort the response values. +required. + :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + :return: AdminDescriptionEntityList If the method is called asynchronously, returns the request thread. """ - all_params = ['org', 'project', 'domain', 'workflow', 'resource_type'] # noqa: E501 + all_params = ['resource_type', 'id_org', 'id_project', 'id_domain', 'id_name', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -5601,42 +7160,52 @@ def get_workflow_attributes2_with_http_info(self, org, project, domain, workflow if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method get_workflow_attributes2" % key + " to method list_description_entities4" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'org' is set - if ('org' not in params or - params['org'] is None): - raise ValueError("Missing the required parameter `org` when calling `get_workflow_attributes2`") # noqa: E501 - # verify the required parameter 'project' is set - if ('project' not in params or - params['project'] is None): - raise ValueError("Missing the required parameter `project` when calling `get_workflow_attributes2`") # noqa: E501 - # verify the required parameter 'domain' is set - if ('domain' not in params or - params['domain'] is None): - raise ValueError("Missing the required parameter `domain` when calling `get_workflow_attributes2`") # noqa: E501 - # verify the required parameter 'workflow' is set - if ('workflow' not in params or - params['workflow'] is None): - raise ValueError("Missing the required parameter `workflow` when calling `get_workflow_attributes2`") # noqa: E501 + # verify the required parameter 'resource_type' is set + if ('resource_type' not in params or + params['resource_type'] is None): + raise ValueError("Missing the required parameter `resource_type` when calling `list_description_entities4`") # noqa: E501 + # verify the required parameter 'id_org' is set + if ('id_org' not in params or + params['id_org'] is None): + raise ValueError("Missing the required parameter `id_org` when calling `list_description_entities4`") # noqa: E501 + # verify the required parameter 'id_project' is set + if ('id_project' not in params or + params['id_project'] is None): + raise ValueError("Missing the required parameter `id_project` when calling `list_description_entities4`") # noqa: E501 + # verify the required parameter 'id_domain' is set + if ('id_domain' not in params or + params['id_domain'] is None): + raise ValueError("Missing the required parameter `id_domain` when calling `list_description_entities4`") # noqa: E501 collection_formats = {} path_params = {} - if 'org' in params: - path_params['org'] = params['org'] # noqa: E501 - if 'project' in params: - path_params['project'] = params['project'] # noqa: E501 - if 'domain' in params: - path_params['domain'] = params['domain'] # noqa: E501 - if 'workflow' in params: - path_params['workflow'] = params['workflow'] # noqa: E501 + if 'resource_type' in params: + path_params['resource_type'] = params['resource_type'] # noqa: E501 + if 'id_org' in params: + path_params['id.org'] = params['id_org'] # noqa: E501 + if 'id_project' in params: + path_params['id.project'] = params['id_project'] # noqa: E501 + if 'id_domain' in params: + path_params['id.domain'] = params['id_domain'] # noqa: E501 query_params = [] - if 'resource_type' in params: - query_params.append(('resource_type', params['resource_type'])) # noqa: E501 + if 'id_name' in params: + query_params.append(('id.name', params['id_name'])) # noqa: E501 + if 'limit' in params: + query_params.append(('limit', params['limit'])) # noqa: E501 + if 'token' in params: + query_params.append(('token', params['token'])) # noqa: E501 + if 'filters' in params: + query_params.append(('filters', params['filters'])) # noqa: E501 + if 'sort_by_key' in params: + query_params.append(('sort_by.key', params['sort_by_key'])) # noqa: E501 + if 'sort_by_direction' in params: + query_params.append(('sort_by.direction', params['sort_by_direction'])) # noqa: E501 header_params = {} @@ -5656,14 +7225,14 @@ def get_workflow_attributes2_with_http_info(self, org, project, domain, workflow auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/workflow_attributes/org/{org}/{project}/{domain}/{workflow}', 'GET', + '/api/v1/description_entities/{resource_type}/org/{id.org}/{id.project}/{id.domain}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminWorkflowAttributesGetResponse', # noqa: E501 + response_type='AdminDescriptionEntityList', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -5671,55 +7240,59 @@ def get_workflow_attributes2_with_http_info(self, org, project, domain, workflow _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def list_active_launch_plans(self, project, domain, **kwargs): # noqa: E501 - """List active versions of :ref:`ref_flyteidl.admin.LaunchPlan`. # noqa: E501 + def list_executions(self, id_project, id_domain, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_active_launch_plans(project, domain, async_req=True) + >>> thread = api.list_executions(id_project, id_domain, async_req=True) >>> result = thread.get() :param async_req bool - :param str project: Name of the project that contains the identifiers. +required. (required) - :param str domain: Name of the domain the identifiers belongs to within the project. +required. (required) + :param str id_project: Name of the project the resource belongs to. (required) + :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. + :param str id_org: Optional, org key applied to the resource. :param int limit: Indicates the number of resources to be returned. +required. - :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. + :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. + :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. :param str sort_by_key: Indicates an attribute to sort the response values. +required. :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :param str org: Optional, org key applied to the resource. - :return: AdminLaunchPlanList + :return: AdminExecutionList If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.list_active_launch_plans_with_http_info(project, domain, **kwargs) # noqa: E501 + return self.list_executions_with_http_info(id_project, id_domain, **kwargs) # noqa: E501 else: - (data) = self.list_active_launch_plans_with_http_info(project, domain, **kwargs) # noqa: E501 + (data) = self.list_executions_with_http_info(id_project, id_domain, **kwargs) # noqa: E501 return data - def list_active_launch_plans_with_http_info(self, project, domain, **kwargs): # noqa: E501 - """List active versions of :ref:`ref_flyteidl.admin.LaunchPlan`. # noqa: E501 + def list_executions_with_http_info(self, id_project, id_domain, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_active_launch_plans_with_http_info(project, domain, async_req=True) + >>> thread = api.list_executions_with_http_info(id_project, id_domain, async_req=True) >>> result = thread.get() :param async_req bool - :param str project: Name of the project that contains the identifiers. +required. (required) - :param str domain: Name of the domain the identifiers belongs to within the project. +required. (required) + :param str id_project: Name of the project the resource belongs to. (required) + :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. + :param str id_org: Optional, org key applied to the resource. :param int limit: Indicates the number of resources to be returned. +required. - :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. + :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. + :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. :param str sort_by_key: Indicates an attribute to sort the response values. +required. :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :param str org: Optional, org key applied to the resource. - :return: AdminLaunchPlanList + :return: AdminExecutionList If the method is called asynchronously, returns the request thread. """ - all_params = ['project', 'domain', 'limit', 'token', 'sort_by_key', 'sort_by_direction', 'org'] # noqa: E501 + all_params = ['id_project', 'id_domain', 'id_name', 'id_org', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -5730,38 +7303,42 @@ def list_active_launch_plans_with_http_info(self, project, domain, **kwargs): # if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method list_active_launch_plans" % key + " to method list_executions" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'project' is set - if ('project' not in params or - params['project'] is None): - raise ValueError("Missing the required parameter `project` when calling `list_active_launch_plans`") # noqa: E501 - # verify the required parameter 'domain' is set - if ('domain' not in params or - params['domain'] is None): - raise ValueError("Missing the required parameter `domain` when calling `list_active_launch_plans`") # noqa: E501 + # verify the required parameter 'id_project' is set + if ('id_project' not in params or + params['id_project'] is None): + raise ValueError("Missing the required parameter `id_project` when calling `list_executions`") # noqa: E501 + # verify the required parameter 'id_domain' is set + if ('id_domain' not in params or + params['id_domain'] is None): + raise ValueError("Missing the required parameter `id_domain` when calling `list_executions`") # noqa: E501 collection_formats = {} path_params = {} - if 'project' in params: - path_params['project'] = params['project'] # noqa: E501 - if 'domain' in params: - path_params['domain'] = params['domain'] # noqa: E501 + if 'id_project' in params: + path_params['id.project'] = params['id_project'] # noqa: E501 + if 'id_domain' in params: + path_params['id.domain'] = params['id_domain'] # noqa: E501 query_params = [] + if 'id_name' in params: + query_params.append(('id.name', params['id_name'])) # noqa: E501 + if 'id_org' in params: + query_params.append(('id.org', params['id_org'])) # noqa: E501 if 'limit' in params: query_params.append(('limit', params['limit'])) # noqa: E501 if 'token' in params: query_params.append(('token', params['token'])) # noqa: E501 + if 'filters' in params: + query_params.append(('filters', params['filters'])) # noqa: E501 if 'sort_by_key' in params: query_params.append(('sort_by.key', params['sort_by_key'])) # noqa: E501 if 'sort_by_direction' in params: query_params.append(('sort_by.direction', params['sort_by_direction'])) # noqa: E501 - if 'org' in params: - query_params.append(('org', params['org'])) # noqa: E501 header_params = {} @@ -5781,14 +7358,14 @@ def list_active_launch_plans_with_http_info(self, project, domain, **kwargs): # auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/active_launch_plans/{project}/{domain}', 'GET', + '/api/v1/executions/{id.project}/{id.domain}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminLaunchPlanList', # noqa: E501 + response_type='AdminExecutionList', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -5796,61 +7373,59 @@ def list_active_launch_plans_with_http_info(self, project, domain, **kwargs): # _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def list_description_entities(self, resource_type, id_project, id_domain, id_name, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.DescriptionEntity` definitions. # noqa: E501 + def list_executions2(self, id_org, id_project, id_domain, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_description_entities(resource_type, id_project, id_domain, id_name, async_req=True) + >>> thread = api.list_executions2(id_org, id_project, id_domain, async_req=True) >>> result = thread.get() :param async_req bool - :param str resource_type: Identifies the specific type of resource that this identifier corresponds to. (required) + :param str id_org: Optional, org key applied to the resource. (required) :param str id_project: Name of the project the resource belongs to. (required) :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) - :param str id_org: Optional, org key applied to the resource. + :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. :param int limit: Indicates the number of resources to be returned. +required. - :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. + :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. :param str sort_by_key: Indicates an attribute to sort the response values. +required. :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :return: AdminDescriptionEntityList + :return: AdminExecutionList If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.list_description_entities_with_http_info(resource_type, id_project, id_domain, id_name, **kwargs) # noqa: E501 + return self.list_executions2_with_http_info(id_org, id_project, id_domain, **kwargs) # noqa: E501 else: - (data) = self.list_description_entities_with_http_info(resource_type, id_project, id_domain, id_name, **kwargs) # noqa: E501 + (data) = self.list_executions2_with_http_info(id_org, id_project, id_domain, **kwargs) # noqa: E501 return data - def list_description_entities_with_http_info(self, resource_type, id_project, id_domain, id_name, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.DescriptionEntity` definitions. # noqa: E501 + def list_executions2_with_http_info(self, id_org, id_project, id_domain, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_description_entities_with_http_info(resource_type, id_project, id_domain, id_name, async_req=True) + >>> thread = api.list_executions2_with_http_info(id_org, id_project, id_domain, async_req=True) >>> result = thread.get() :param async_req bool - :param str resource_type: Identifies the specific type of resource that this identifier corresponds to. (required) + :param str id_org: Optional, org key applied to the resource. (required) :param str id_project: Name of the project the resource belongs to. (required) :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) - :param str id_org: Optional, org key applied to the resource. + :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. :param int limit: Indicates the number of resources to be returned. +required. - :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. + :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. :param str sort_by_key: Indicates an attribute to sort the response values. +required. :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :return: AdminDescriptionEntityList + :return: AdminExecutionList If the method is called asynchronously, returns the request thread. """ - all_params = ['resource_type', 'id_project', 'id_domain', 'id_name', 'id_org', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # noqa: E501 + all_params = ['id_org', 'id_project', 'id_domain', 'id_name', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -5861,42 +7436,36 @@ def list_description_entities_with_http_info(self, resource_type, id_project, id if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method list_description_entities" % key + " to method list_executions2" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'resource_type' is set - if ('resource_type' not in params or - params['resource_type'] is None): - raise ValueError("Missing the required parameter `resource_type` when calling `list_description_entities`") # noqa: E501 + # verify the required parameter 'id_org' is set + if ('id_org' not in params or + params['id_org'] is None): + raise ValueError("Missing the required parameter `id_org` when calling `list_executions2`") # noqa: E501 # verify the required parameter 'id_project' is set if ('id_project' not in params or params['id_project'] is None): - raise ValueError("Missing the required parameter `id_project` when calling `list_description_entities`") # noqa: E501 + raise ValueError("Missing the required parameter `id_project` when calling `list_executions2`") # noqa: E501 # verify the required parameter 'id_domain' is set if ('id_domain' not in params or params['id_domain'] is None): - raise ValueError("Missing the required parameter `id_domain` when calling `list_description_entities`") # noqa: E501 - # verify the required parameter 'id_name' is set - if ('id_name' not in params or - params['id_name'] is None): - raise ValueError("Missing the required parameter `id_name` when calling `list_description_entities`") # noqa: E501 + raise ValueError("Missing the required parameter `id_domain` when calling `list_executions2`") # noqa: E501 collection_formats = {} path_params = {} - if 'resource_type' in params: - path_params['resource_type'] = params['resource_type'] # noqa: E501 + if 'id_org' in params: + path_params['id.org'] = params['id_org'] # noqa: E501 if 'id_project' in params: path_params['id.project'] = params['id_project'] # noqa: E501 if 'id_domain' in params: path_params['id.domain'] = params['id_domain'] # noqa: E501 - if 'id_name' in params: - path_params['id.name'] = params['id_name'] # noqa: E501 query_params = [] - if 'id_org' in params: - query_params.append(('id.org', params['id_org'])) # noqa: E501 + if 'id_name' in params: + query_params.append(('id.name', params['id_name'])) # noqa: E501 if 'limit' in params: query_params.append(('limit', params['limit'])) # noqa: E501 if 'token' in params: @@ -5926,14 +7495,14 @@ def list_description_entities_with_http_info(self, resource_type, id_project, id auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/description_entities/{resource_type}/{id.project}/{id.domain}/{id.name}', 'GET', + '/api/v1/executions/org/{id.org}/{id.project}/{id.domain}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminDescriptionEntityList', # noqa: E501 + response_type='AdminExecutionList', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -5941,61 +7510,57 @@ def list_description_entities_with_http_info(self, resource_type, id_project, id _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def list_description_entities2(self, resource_type, id_org, id_project, id_domain, id_name, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.DescriptionEntity` definitions. # noqa: E501 + def list_launch_plan_ids(self, project, domain, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of launch plan objects. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_description_entities2(resource_type, id_org, id_project, id_domain, id_name, async_req=True) + >>> thread = api.list_launch_plan_ids(project, domain, async_req=True) >>> result = thread.get() :param async_req bool - :param str resource_type: Identifies the specific type of resource that this identifier corresponds to. (required) - :param str id_org: Optional, org key applied to the resource. (required) - :param str id_project: Name of the project the resource belongs to. (required) - :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) + :param str project: Name of the project that contains the identifiers. +required (required) + :param str domain: Name of the domain the identifiers belongs to within the project. +required (required) :param int limit: Indicates the number of resources to be returned. +required. :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. - :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. :param str sort_by_key: Indicates an attribute to sort the response values. +required. :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :return: AdminDescriptionEntityList + :param str filters: Indicates a list of filters passed as string. +optional. + :param str org: Optional, org key applied to the resource. + :return: AdminNamedEntityIdentifierList If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.list_description_entities2_with_http_info(resource_type, id_org, id_project, id_domain, id_name, **kwargs) # noqa: E501 + return self.list_launch_plan_ids_with_http_info(project, domain, **kwargs) # noqa: E501 else: - (data) = self.list_description_entities2_with_http_info(resource_type, id_org, id_project, id_domain, id_name, **kwargs) # noqa: E501 + (data) = self.list_launch_plan_ids_with_http_info(project, domain, **kwargs) # noqa: E501 return data - def list_description_entities2_with_http_info(self, resource_type, id_org, id_project, id_domain, id_name, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.DescriptionEntity` definitions. # noqa: E501 + def list_launch_plan_ids_with_http_info(self, project, domain, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of launch plan objects. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_description_entities2_with_http_info(resource_type, id_org, id_project, id_domain, id_name, async_req=True) + >>> thread = api.list_launch_plan_ids_with_http_info(project, domain, async_req=True) >>> result = thread.get() :param async_req bool - :param str resource_type: Identifies the specific type of resource that this identifier corresponds to. (required) - :param str id_org: Optional, org key applied to the resource. (required) - :param str id_project: Name of the project the resource belongs to. (required) - :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) + :param str project: Name of the project that contains the identifiers. +required (required) + :param str domain: Name of the domain the identifiers belongs to within the project. +required (required) :param int limit: Indicates the number of resources to be returned. +required. :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. - :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. :param str sort_by_key: Indicates an attribute to sort the response values. +required. :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :return: AdminDescriptionEntityList + :param str filters: Indicates a list of filters passed as string. +optional. + :param str org: Optional, org key applied to the resource. + :return: AdminNamedEntityIdentifierList If the method is called asynchronously, returns the request thread. """ - all_params = ['resource_type', 'id_org', 'id_project', 'id_domain', 'id_name', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # noqa: E501 + all_params = ['project', 'domain', 'limit', 'token', 'sort_by_key', 'sort_by_direction', 'filters', 'org'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -6006,56 +7571,40 @@ def list_description_entities2_with_http_info(self, resource_type, id_org, id_pr if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method list_description_entities2" % key + " to method list_launch_plan_ids" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'resource_type' is set - if ('resource_type' not in params or - params['resource_type'] is None): - raise ValueError("Missing the required parameter `resource_type` when calling `list_description_entities2`") # noqa: E501 - # verify the required parameter 'id_org' is set - if ('id_org' not in params or - params['id_org'] is None): - raise ValueError("Missing the required parameter `id_org` when calling `list_description_entities2`") # noqa: E501 - # verify the required parameter 'id_project' is set - if ('id_project' not in params or - params['id_project'] is None): - raise ValueError("Missing the required parameter `id_project` when calling `list_description_entities2`") # noqa: E501 - # verify the required parameter 'id_domain' is set - if ('id_domain' not in params or - params['id_domain'] is None): - raise ValueError("Missing the required parameter `id_domain` when calling `list_description_entities2`") # noqa: E501 - # verify the required parameter 'id_name' is set - if ('id_name' not in params or - params['id_name'] is None): - raise ValueError("Missing the required parameter `id_name` when calling `list_description_entities2`") # noqa: E501 + # verify the required parameter 'project' is set + if ('project' not in params or + params['project'] is None): + raise ValueError("Missing the required parameter `project` when calling `list_launch_plan_ids`") # noqa: E501 + # verify the required parameter 'domain' is set + if ('domain' not in params or + params['domain'] is None): + raise ValueError("Missing the required parameter `domain` when calling `list_launch_plan_ids`") # noqa: E501 collection_formats = {} path_params = {} - if 'resource_type' in params: - path_params['resource_type'] = params['resource_type'] # noqa: E501 - if 'id_org' in params: - path_params['id.org'] = params['id_org'] # noqa: E501 - if 'id_project' in params: - path_params['id.project'] = params['id_project'] # noqa: E501 - if 'id_domain' in params: - path_params['id.domain'] = params['id_domain'] # noqa: E501 - if 'id_name' in params: - path_params['id.name'] = params['id_name'] # noqa: E501 + if 'project' in params: + path_params['project'] = params['project'] # noqa: E501 + if 'domain' in params: + path_params['domain'] = params['domain'] # noqa: E501 query_params = [] if 'limit' in params: query_params.append(('limit', params['limit'])) # noqa: E501 if 'token' in params: query_params.append(('token', params['token'])) # noqa: E501 - if 'filters' in params: - query_params.append(('filters', params['filters'])) # noqa: E501 if 'sort_by_key' in params: query_params.append(('sort_by.key', params['sort_by_key'])) # noqa: E501 if 'sort_by_direction' in params: query_params.append(('sort_by.direction', params['sort_by_direction'])) # noqa: E501 + if 'filters' in params: + query_params.append(('filters', params['filters'])) # noqa: E501 + if 'org' in params: + query_params.append(('org', params['org'])) # noqa: E501 header_params = {} @@ -6075,14 +7624,14 @@ def list_description_entities2_with_http_info(self, resource_type, id_org, id_pr auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/description_entities/{resource_type}/org/{id.org}/{id.project}/{id.domain}/{id.name}', 'GET', + '/api/v1/launch_plan_ids/{project}/{domain}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminDescriptionEntityList', # noqa: E501 + response_type='AdminNamedEntityIdentifierList', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -6090,61 +7639,57 @@ def list_description_entities2_with_http_info(self, resource_type, id_org, id_pr _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def list_description_entities3(self, resource_type, id_project, id_domain, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.DescriptionEntity` definitions. # noqa: E501 + def list_launch_plan_ids2(self, org, project, domain, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of launch plan objects. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_description_entities3(resource_type, id_project, id_domain, async_req=True) + >>> thread = api.list_launch_plan_ids2(org, project, domain, async_req=True) >>> result = thread.get() :param async_req bool - :param str resource_type: Identifies the specific type of resource that this identifier corresponds to. (required) - :param str id_project: Name of the project the resource belongs to. (required) - :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. - :param str id_org: Optional, org key applied to the resource. + :param str org: Optional, org key applied to the resource. (required) + :param str project: Name of the project that contains the identifiers. +required (required) + :param str domain: Name of the domain the identifiers belongs to within the project. +required (required) :param int limit: Indicates the number of resources to be returned. +required. :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. - :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. :param str sort_by_key: Indicates an attribute to sort the response values. +required. :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :return: AdminDescriptionEntityList + :param str filters: Indicates a list of filters passed as string. +optional. + :return: AdminNamedEntityIdentifierList If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.list_description_entities3_with_http_info(resource_type, id_project, id_domain, **kwargs) # noqa: E501 + return self.list_launch_plan_ids2_with_http_info(org, project, domain, **kwargs) # noqa: E501 else: - (data) = self.list_description_entities3_with_http_info(resource_type, id_project, id_domain, **kwargs) # noqa: E501 + (data) = self.list_launch_plan_ids2_with_http_info(org, project, domain, **kwargs) # noqa: E501 return data - def list_description_entities3_with_http_info(self, resource_type, id_project, id_domain, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.DescriptionEntity` definitions. # noqa: E501 + def list_launch_plan_ids2_with_http_info(self, org, project, domain, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of launch plan objects. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_description_entities3_with_http_info(resource_type, id_project, id_domain, async_req=True) + >>> thread = api.list_launch_plan_ids2_with_http_info(org, project, domain, async_req=True) >>> result = thread.get() :param async_req bool - :param str resource_type: Identifies the specific type of resource that this identifier corresponds to. (required) - :param str id_project: Name of the project the resource belongs to. (required) - :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. - :param str id_org: Optional, org key applied to the resource. + :param str org: Optional, org key applied to the resource. (required) + :param str project: Name of the project that contains the identifiers. +required (required) + :param str domain: Name of the domain the identifiers belongs to within the project. +required (required) :param int limit: Indicates the number of resources to be returned. +required. :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. - :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. :param str sort_by_key: Indicates an attribute to sort the response values. +required. :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :return: AdminDescriptionEntityList + :param str filters: Indicates a list of filters passed as string. +optional. + :return: AdminNamedEntityIdentifierList If the method is called asynchronously, returns the request thread. """ - all_params = ['resource_type', 'id_project', 'id_domain', 'id_name', 'id_org', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # noqa: E501 + all_params = ['org', 'project', 'domain', 'limit', 'token', 'sort_by_key', 'sort_by_direction', 'filters'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -6155,48 +7700,44 @@ def list_description_entities3_with_http_info(self, resource_type, id_project, i if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method list_description_entities3" % key + " to method list_launch_plan_ids2" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'resource_type' is set - if ('resource_type' not in params or - params['resource_type'] is None): - raise ValueError("Missing the required parameter `resource_type` when calling `list_description_entities3`") # noqa: E501 - # verify the required parameter 'id_project' is set - if ('id_project' not in params or - params['id_project'] is None): - raise ValueError("Missing the required parameter `id_project` when calling `list_description_entities3`") # noqa: E501 - # verify the required parameter 'id_domain' is set - if ('id_domain' not in params or - params['id_domain'] is None): - raise ValueError("Missing the required parameter `id_domain` when calling `list_description_entities3`") # noqa: E501 + # verify the required parameter 'org' is set + if ('org' not in params or + params['org'] is None): + raise ValueError("Missing the required parameter `org` when calling `list_launch_plan_ids2`") # noqa: E501 + # verify the required parameter 'project' is set + if ('project' not in params or + params['project'] is None): + raise ValueError("Missing the required parameter `project` when calling `list_launch_plan_ids2`") # noqa: E501 + # verify the required parameter 'domain' is set + if ('domain' not in params or + params['domain'] is None): + raise ValueError("Missing the required parameter `domain` when calling `list_launch_plan_ids2`") # noqa: E501 collection_formats = {} path_params = {} - if 'resource_type' in params: - path_params['resource_type'] = params['resource_type'] # noqa: E501 - if 'id_project' in params: - path_params['id.project'] = params['id_project'] # noqa: E501 - if 'id_domain' in params: - path_params['id.domain'] = params['id_domain'] # noqa: E501 + if 'org' in params: + path_params['org'] = params['org'] # noqa: E501 + if 'project' in params: + path_params['project'] = params['project'] # noqa: E501 + if 'domain' in params: + path_params['domain'] = params['domain'] # noqa: E501 query_params = [] - if 'id_name' in params: - query_params.append(('id.name', params['id_name'])) # noqa: E501 - if 'id_org' in params: - query_params.append(('id.org', params['id_org'])) # noqa: E501 if 'limit' in params: query_params.append(('limit', params['limit'])) # noqa: E501 if 'token' in params: query_params.append(('token', params['token'])) # noqa: E501 - if 'filters' in params: - query_params.append(('filters', params['filters'])) # noqa: E501 if 'sort_by_key' in params: query_params.append(('sort_by.key', params['sort_by_key'])) # noqa: E501 if 'sort_by_direction' in params: query_params.append(('sort_by.direction', params['sort_by_direction'])) # noqa: E501 + if 'filters' in params: + query_params.append(('filters', params['filters'])) # noqa: E501 header_params = {} @@ -6216,14 +7757,14 @@ def list_description_entities3_with_http_info(self, resource_type, id_project, i auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/description_entities/{resource_type}/{id.project}/{id.domain}', 'GET', + '/api/v1/launch_plan_ids/org/{org}/{project}/{domain}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminDescriptionEntityList', # noqa: E501 + response_type='AdminNamedEntityIdentifierList', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -6231,61 +7772,59 @@ def list_description_entities3_with_http_info(self, resource_type, id_project, i _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def list_description_entities4(self, resource_type, id_org, id_project, id_domain, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.DescriptionEntity` definitions. # noqa: E501 + def list_launch_plans(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_description_entities4(resource_type, id_org, id_project, id_domain, async_req=True) + >>> thread = api.list_launch_plans(id_project, id_domain, id_name, async_req=True) >>> result = thread.get() :param async_req bool - :param str resource_type: Identifies the specific type of resource that this identifier corresponds to. (required) - :param str id_org: Optional, org key applied to the resource. (required) :param str id_project: Name of the project the resource belongs to. (required) :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. + :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) + :param str id_org: Optional, org key applied to the resource. :param int limit: Indicates the number of resources to be returned. +required. - :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. + :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. :param str sort_by_key: Indicates an attribute to sort the response values. +required. :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :return: AdminDescriptionEntityList + :return: AdminLaunchPlanList If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.list_description_entities4_with_http_info(resource_type, id_org, id_project, id_domain, **kwargs) # noqa: E501 + return self.list_launch_plans_with_http_info(id_project, id_domain, id_name, **kwargs) # noqa: E501 else: - (data) = self.list_description_entities4_with_http_info(resource_type, id_org, id_project, id_domain, **kwargs) # noqa: E501 + (data) = self.list_launch_plans_with_http_info(id_project, id_domain, id_name, **kwargs) # noqa: E501 return data - def list_description_entities4_with_http_info(self, resource_type, id_org, id_project, id_domain, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.DescriptionEntity` definitions. # noqa: E501 + def list_launch_plans_with_http_info(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_description_entities4_with_http_info(resource_type, id_org, id_project, id_domain, async_req=True) + >>> thread = api.list_launch_plans_with_http_info(id_project, id_domain, id_name, async_req=True) >>> result = thread.get() :param async_req bool - :param str resource_type: Identifies the specific type of resource that this identifier corresponds to. (required) - :param str id_org: Optional, org key applied to the resource. (required) :param str id_project: Name of the project the resource belongs to. (required) :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. + :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) + :param str id_org: Optional, org key applied to the resource. :param int limit: Indicates the number of resources to be returned. +required. - :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. + :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. :param str sort_by_key: Indicates an attribute to sort the response values. +required. :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :return: AdminDescriptionEntityList + :return: AdminLaunchPlanList If the method is called asynchronously, returns the request thread. """ - all_params = ['resource_type', 'id_org', 'id_project', 'id_domain', 'id_name', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # noqa: E501 + all_params = ['id_project', 'id_domain', 'id_name', 'id_org', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -6296,42 +7835,36 @@ def list_description_entities4_with_http_info(self, resource_type, id_org, id_pr if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method list_description_entities4" % key + " to method list_launch_plans" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'resource_type' is set - if ('resource_type' not in params or - params['resource_type'] is None): - raise ValueError("Missing the required parameter `resource_type` when calling `list_description_entities4`") # noqa: E501 - # verify the required parameter 'id_org' is set - if ('id_org' not in params or - params['id_org'] is None): - raise ValueError("Missing the required parameter `id_org` when calling `list_description_entities4`") # noqa: E501 # verify the required parameter 'id_project' is set if ('id_project' not in params or params['id_project'] is None): - raise ValueError("Missing the required parameter `id_project` when calling `list_description_entities4`") # noqa: E501 + raise ValueError("Missing the required parameter `id_project` when calling `list_launch_plans`") # noqa: E501 # verify the required parameter 'id_domain' is set if ('id_domain' not in params or params['id_domain'] is None): - raise ValueError("Missing the required parameter `id_domain` when calling `list_description_entities4`") # noqa: E501 + raise ValueError("Missing the required parameter `id_domain` when calling `list_launch_plans`") # noqa: E501 + # verify the required parameter 'id_name' is set + if ('id_name' not in params or + params['id_name'] is None): + raise ValueError("Missing the required parameter `id_name` when calling `list_launch_plans`") # noqa: E501 collection_formats = {} path_params = {} - if 'resource_type' in params: - path_params['resource_type'] = params['resource_type'] # noqa: E501 - if 'id_org' in params: - path_params['id.org'] = params['id_org'] # noqa: E501 if 'id_project' in params: path_params['id.project'] = params['id_project'] # noqa: E501 if 'id_domain' in params: path_params['id.domain'] = params['id_domain'] # noqa: E501 + if 'id_name' in params: + path_params['id.name'] = params['id_name'] # noqa: E501 query_params = [] - if 'id_name' in params: - query_params.append(('id.name', params['id_name'])) # noqa: E501 + if 'id_org' in params: + query_params.append(('id.org', params['id_org'])) # noqa: E501 if 'limit' in params: query_params.append(('limit', params['limit'])) # noqa: E501 if 'token' in params: @@ -6361,14 +7894,14 @@ def list_description_entities4_with_http_info(self, resource_type, id_org, id_pr auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/description_entities/{resource_type}/org/{id.org}/{id.project}/{id.domain}', 'GET', + '/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminDescriptionEntityList', # noqa: E501 + response_type='AdminLaunchPlanList', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -6376,59 +7909,59 @@ def list_description_entities4_with_http_info(self, resource_type, id_org, id_pr _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def list_executions(self, id_project, id_domain, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 + def list_launch_plans2(self, id_org, id_project, id_domain, id_name, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_executions(id_project, id_domain, async_req=True) + >>> thread = api.list_launch_plans2(id_org, id_project, id_domain, id_name, async_req=True) >>> result = thread.get() :param async_req bool + :param str id_org: Optional, org key applied to the resource. (required) :param str id_project: Name of the project the resource belongs to. (required) :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. - :param str id_org: Optional, org key applied to the resource. + :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) :param int limit: Indicates the number of resources to be returned. +required. :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. :param str sort_by_key: Indicates an attribute to sort the response values. +required. :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :return: AdminExecutionList + :return: AdminLaunchPlanList If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.list_executions_with_http_info(id_project, id_domain, **kwargs) # noqa: E501 + return self.list_launch_plans2_with_http_info(id_org, id_project, id_domain, id_name, **kwargs) # noqa: E501 else: - (data) = self.list_executions_with_http_info(id_project, id_domain, **kwargs) # noqa: E501 + (data) = self.list_launch_plans2_with_http_info(id_org, id_project, id_domain, id_name, **kwargs) # noqa: E501 return data - def list_executions_with_http_info(self, id_project, id_domain, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 + def list_launch_plans2_with_http_info(self, id_org, id_project, id_domain, id_name, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_executions_with_http_info(id_project, id_domain, async_req=True) + >>> thread = api.list_launch_plans2_with_http_info(id_org, id_project, id_domain, id_name, async_req=True) >>> result = thread.get() :param async_req bool + :param str id_org: Optional, org key applied to the resource. (required) :param str id_project: Name of the project the resource belongs to. (required) :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. - :param str id_org: Optional, org key applied to the resource. + :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) :param int limit: Indicates the number of resources to be returned. +required. :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. :param str sort_by_key: Indicates an attribute to sort the response values. +required. :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :return: AdminExecutionList + :return: AdminLaunchPlanList If the method is called asynchronously, returns the request thread. """ - all_params = ['id_project', 'id_domain', 'id_name', 'id_org', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # noqa: E501 + all_params = ['id_org', 'id_project', 'id_domain', 'id_name', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -6439,32 +7972,40 @@ def list_executions_with_http_info(self, id_project, id_domain, **kwargs): # no if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method list_executions" % key + " to method list_launch_plans2" % key ) params[key] = val del params['kwargs'] + # verify the required parameter 'id_org' is set + if ('id_org' not in params or + params['id_org'] is None): + raise ValueError("Missing the required parameter `id_org` when calling `list_launch_plans2`") # noqa: E501 # verify the required parameter 'id_project' is set if ('id_project' not in params or params['id_project'] is None): - raise ValueError("Missing the required parameter `id_project` when calling `list_executions`") # noqa: E501 + raise ValueError("Missing the required parameter `id_project` when calling `list_launch_plans2`") # noqa: E501 # verify the required parameter 'id_domain' is set if ('id_domain' not in params or params['id_domain'] is None): - raise ValueError("Missing the required parameter `id_domain` when calling `list_executions`") # noqa: E501 + raise ValueError("Missing the required parameter `id_domain` when calling `list_launch_plans2`") # noqa: E501 + # verify the required parameter 'id_name' is set + if ('id_name' not in params or + params['id_name'] is None): + raise ValueError("Missing the required parameter `id_name` when calling `list_launch_plans2`") # noqa: E501 collection_formats = {} path_params = {} + if 'id_org' in params: + path_params['id.org'] = params['id_org'] # noqa: E501 if 'id_project' in params: path_params['id.project'] = params['id_project'] # noqa: E501 if 'id_domain' in params: path_params['id.domain'] = params['id_domain'] # noqa: E501 + if 'id_name' in params: + path_params['id.name'] = params['id_name'] # noqa: E501 query_params = [] - if 'id_name' in params: - query_params.append(('id.name', params['id_name'])) # noqa: E501 - if 'id_org' in params: - query_params.append(('id.org', params['id_org'])) # noqa: E501 if 'limit' in params: query_params.append(('limit', params['limit'])) # noqa: E501 if 'token' in params: @@ -6494,14 +8035,14 @@ def list_executions_with_http_info(self, id_project, id_domain, **kwargs): # no auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/executions/{id.project}/{id.domain}', 'GET', + '/api/v1/launch_plans/org/{id.org}/{id.project}/{id.domain}/{id.name}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminExecutionList', # noqa: E501 + response_type='AdminLaunchPlanList', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -6509,59 +8050,59 @@ def list_executions_with_http_info(self, id_project, id_domain, **kwargs): # no _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def list_executions2(self, id_org, id_project, id_domain, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 + def list_launch_plans3(self, id_project, id_domain, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_executions2(id_org, id_project, id_domain, async_req=True) + >>> thread = api.list_launch_plans3(id_project, id_domain, async_req=True) >>> result = thread.get() :param async_req bool - :param str id_org: Optional, org key applied to the resource. (required) :param str id_project: Name of the project the resource belongs to. (required) :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. + :param str id_org: Optional, org key applied to the resource. :param int limit: Indicates the number of resources to be returned. +required. :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. :param str sort_by_key: Indicates an attribute to sort the response values. +required. :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :return: AdminExecutionList + :return: AdminLaunchPlanList If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.list_executions2_with_http_info(id_org, id_project, id_domain, **kwargs) # noqa: E501 + return self.list_launch_plans3_with_http_info(id_project, id_domain, **kwargs) # noqa: E501 else: - (data) = self.list_executions2_with_http_info(id_org, id_project, id_domain, **kwargs) # noqa: E501 + (data) = self.list_launch_plans3_with_http_info(id_project, id_domain, **kwargs) # noqa: E501 return data - def list_executions2_with_http_info(self, id_org, id_project, id_domain, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 + def list_launch_plans3_with_http_info(self, id_project, id_domain, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_executions2_with_http_info(id_org, id_project, id_domain, async_req=True) + >>> thread = api.list_launch_plans3_with_http_info(id_project, id_domain, async_req=True) >>> result = thread.get() :param async_req bool - :param str id_org: Optional, org key applied to the resource. (required) :param str id_project: Name of the project the resource belongs to. (required) :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. + :param str id_org: Optional, org key applied to the resource. :param int limit: Indicates the number of resources to be returned. +required. :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. :param str sort_by_key: Indicates an attribute to sort the response values. +required. :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :return: AdminExecutionList + :return: AdminLaunchPlanList If the method is called asynchronously, returns the request thread. """ - all_params = ['id_org', 'id_project', 'id_domain', 'id_name', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # noqa: E501 + all_params = ['id_project', 'id_domain', 'id_name', 'id_org', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -6572,28 +8113,22 @@ def list_executions2_with_http_info(self, id_org, id_project, id_domain, **kwarg if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method list_executions2" % key + " to method list_launch_plans3" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'id_org' is set - if ('id_org' not in params or - params['id_org'] is None): - raise ValueError("Missing the required parameter `id_org` when calling `list_executions2`") # noqa: E501 # verify the required parameter 'id_project' is set if ('id_project' not in params or params['id_project'] is None): - raise ValueError("Missing the required parameter `id_project` when calling `list_executions2`") # noqa: E501 + raise ValueError("Missing the required parameter `id_project` when calling `list_launch_plans3`") # noqa: E501 # verify the required parameter 'id_domain' is set if ('id_domain' not in params or params['id_domain'] is None): - raise ValueError("Missing the required parameter `id_domain` when calling `list_executions2`") # noqa: E501 + raise ValueError("Missing the required parameter `id_domain` when calling `list_launch_plans3`") # noqa: E501 collection_formats = {} path_params = {} - if 'id_org' in params: - path_params['id.org'] = params['id_org'] # noqa: E501 if 'id_project' in params: path_params['id.project'] = params['id_project'] # noqa: E501 if 'id_domain' in params: @@ -6602,6 +8137,8 @@ def list_executions2_with_http_info(self, id_org, id_project, id_domain, **kwarg query_params = [] if 'id_name' in params: query_params.append(('id.name', params['id_name'])) # noqa: E501 + if 'id_org' in params: + query_params.append(('id.org', params['id_org'])) # noqa: E501 if 'limit' in params: query_params.append(('limit', params['limit'])) # noqa: E501 if 'token' in params: @@ -6631,14 +8168,14 @@ def list_executions2_with_http_info(self, id_org, id_project, id_domain, **kwarg auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/executions/org/{id.org}/{id.project}/{id.domain}', 'GET', + '/api/v1/launch_plans/{id.project}/{id.domain}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminExecutionList', # noqa: E501 + response_type='AdminLaunchPlanList', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -6646,57 +8183,59 @@ def list_executions2_with_http_info(self, id_org, id_project, id_domain, **kwarg _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def list_launch_plan_ids(self, project, domain, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of launch plan objects. # noqa: E501 + def list_launch_plans4(self, id_org, id_project, id_domain, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_launch_plan_ids(project, domain, async_req=True) + >>> thread = api.list_launch_plans4(id_org, id_project, id_domain, async_req=True) >>> result = thread.get() :param async_req bool - :param str project: Name of the project that contains the identifiers. +required (required) - :param str domain: Name of the domain the identifiers belongs to within the project. +required (required) + :param str id_org: Optional, org key applied to the resource. (required) + :param str id_project: Name of the project the resource belongs to. (required) + :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. :param int limit: Indicates the number of resources to be returned. +required. - :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. + :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. + :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. :param str sort_by_key: Indicates an attribute to sort the response values. +required. :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :param str filters: Indicates a list of filters passed as string. +optional. - :param str org: Optional, org key applied to the resource. - :return: AdminNamedEntityIdentifierList + :return: AdminLaunchPlanList If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.list_launch_plan_ids_with_http_info(project, domain, **kwargs) # noqa: E501 + return self.list_launch_plans4_with_http_info(id_org, id_project, id_domain, **kwargs) # noqa: E501 else: - (data) = self.list_launch_plan_ids_with_http_info(project, domain, **kwargs) # noqa: E501 + (data) = self.list_launch_plans4_with_http_info(id_org, id_project, id_domain, **kwargs) # noqa: E501 return data - def list_launch_plan_ids_with_http_info(self, project, domain, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of launch plan objects. # noqa: E501 + def list_launch_plans4_with_http_info(self, id_org, id_project, id_domain, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_launch_plan_ids_with_http_info(project, domain, async_req=True) + >>> thread = api.list_launch_plans4_with_http_info(id_org, id_project, id_domain, async_req=True) >>> result = thread.get() :param async_req bool - :param str project: Name of the project that contains the identifiers. +required (required) - :param str domain: Name of the domain the identifiers belongs to within the project. +required (required) + :param str id_org: Optional, org key applied to the resource. (required) + :param str id_project: Name of the project the resource belongs to. (required) + :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. :param int limit: Indicates the number of resources to be returned. +required. - :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. + :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. + :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. :param str sort_by_key: Indicates an attribute to sort the response values. +required. :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :param str filters: Indicates a list of filters passed as string. +optional. - :param str org: Optional, org key applied to the resource. - :return: AdminNamedEntityIdentifierList + :return: AdminLaunchPlanList If the method is called asynchronously, returns the request thread. """ - all_params = ['project', 'domain', 'limit', 'token', 'sort_by_key', 'sort_by_direction', 'filters', 'org'] # noqa: E501 + all_params = ['id_org', 'id_project', 'id_domain', 'id_name', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -6707,40 +8246,46 @@ def list_launch_plan_ids_with_http_info(self, project, domain, **kwargs): # noq if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method list_launch_plan_ids" % key + " to method list_launch_plans4" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'project' is set - if ('project' not in params or - params['project'] is None): - raise ValueError("Missing the required parameter `project` when calling `list_launch_plan_ids`") # noqa: E501 - # verify the required parameter 'domain' is set - if ('domain' not in params or - params['domain'] is None): - raise ValueError("Missing the required parameter `domain` when calling `list_launch_plan_ids`") # noqa: E501 + # verify the required parameter 'id_org' is set + if ('id_org' not in params or + params['id_org'] is None): + raise ValueError("Missing the required parameter `id_org` when calling `list_launch_plans4`") # noqa: E501 + # verify the required parameter 'id_project' is set + if ('id_project' not in params or + params['id_project'] is None): + raise ValueError("Missing the required parameter `id_project` when calling `list_launch_plans4`") # noqa: E501 + # verify the required parameter 'id_domain' is set + if ('id_domain' not in params or + params['id_domain'] is None): + raise ValueError("Missing the required parameter `id_domain` when calling `list_launch_plans4`") # noqa: E501 collection_formats = {} path_params = {} - if 'project' in params: - path_params['project'] = params['project'] # noqa: E501 - if 'domain' in params: - path_params['domain'] = params['domain'] # noqa: E501 + if 'id_org' in params: + path_params['id.org'] = params['id_org'] # noqa: E501 + if 'id_project' in params: + path_params['id.project'] = params['id_project'] # noqa: E501 + if 'id_domain' in params: + path_params['id.domain'] = params['id_domain'] # noqa: E501 query_params = [] + if 'id_name' in params: + query_params.append(('id.name', params['id_name'])) # noqa: E501 if 'limit' in params: query_params.append(('limit', params['limit'])) # noqa: E501 if 'token' in params: query_params.append(('token', params['token'])) # noqa: E501 + if 'filters' in params: + query_params.append(('filters', params['filters'])) # noqa: E501 if 'sort_by_key' in params: query_params.append(('sort_by.key', params['sort_by_key'])) # noqa: E501 if 'sort_by_direction' in params: query_params.append(('sort_by.direction', params['sort_by_direction'])) # noqa: E501 - if 'filters' in params: - query_params.append(('filters', params['filters'])) # noqa: E501 - if 'org' in params: - query_params.append(('org', params['org'])) # noqa: E501 header_params = {} @@ -6760,14 +8305,14 @@ def list_launch_plan_ids_with_http_info(self, project, domain, **kwargs): # noq auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/launch_plan_ids/{project}/{domain}', 'GET', + '/api/v1/launch_plans/org/{id.org}/{id.project}/{id.domain}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminNamedEntityIdentifierList', # noqa: E501 + response_type='AdminLaunchPlanList', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -6775,57 +8320,45 @@ def list_launch_plan_ids_with_http_info(self, project, domain, **kwargs): # noq _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def list_launch_plan_ids2(self, org, project, domain, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of launch plan objects. # noqa: E501 + def list_matchable_attributes(self, **kwargs): # noqa: E501 + """Lists custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a specific resource type. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_launch_plan_ids2(org, project, domain, async_req=True) + >>> thread = api.list_matchable_attributes(async_req=True) >>> result = thread.get() :param async_req bool - :param str org: Optional, org key applied to the resource. (required) - :param str project: Name of the project that contains the identifiers. +required (required) - :param str domain: Name of the domain the identifiers belongs to within the project. +required (required) - :param int limit: Indicates the number of resources to be returned. +required. - :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. - :param str sort_by_key: Indicates an attribute to sort the response values. +required. - :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :param str filters: Indicates a list of filters passed as string. +optional. - :return: AdminNamedEntityIdentifierList + :param str resource_type: +required. - TASK_RESOURCE: Applies to customizable task resource requests and limits. - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources. - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment. - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec. - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type. - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides. - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run. + :param str org: Optional, org filter applied to list project requests. + :return: AdminListMatchableAttributesResponse If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.list_launch_plan_ids2_with_http_info(org, project, domain, **kwargs) # noqa: E501 + return self.list_matchable_attributes_with_http_info(**kwargs) # noqa: E501 else: - (data) = self.list_launch_plan_ids2_with_http_info(org, project, domain, **kwargs) # noqa: E501 + (data) = self.list_matchable_attributes_with_http_info(**kwargs) # noqa: E501 return data - def list_launch_plan_ids2_with_http_info(self, org, project, domain, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of launch plan objects. # noqa: E501 + def list_matchable_attributes_with_http_info(self, **kwargs): # noqa: E501 + """Lists custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a specific resource type. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_launch_plan_ids2_with_http_info(org, project, domain, async_req=True) + >>> thread = api.list_matchable_attributes_with_http_info(async_req=True) >>> result = thread.get() :param async_req bool - :param str org: Optional, org key applied to the resource. (required) - :param str project: Name of the project that contains the identifiers. +required (required) - :param str domain: Name of the domain the identifiers belongs to within the project. +required (required) - :param int limit: Indicates the number of resources to be returned. +required. - :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. - :param str sort_by_key: Indicates an attribute to sort the response values. +required. - :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :param str filters: Indicates a list of filters passed as string. +optional. - :return: AdminNamedEntityIdentifierList + :param str resource_type: +required. - TASK_RESOURCE: Applies to customizable task resource requests and limits. - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources. - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment. - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec. - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type. - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides. - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run. + :param str org: Optional, org filter applied to list project requests. + :return: AdminListMatchableAttributesResponse If the method is called asynchronously, returns the request thread. """ - all_params = ['org', 'project', 'domain', 'limit', 'token', 'sort_by_key', 'sort_by_direction', 'filters'] # noqa: E501 + all_params = ['resource_type', 'org'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -6836,44 +8369,20 @@ def list_launch_plan_ids2_with_http_info(self, org, project, domain, **kwargs): if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method list_launch_plan_ids2" % key + " to method list_matchable_attributes" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'org' is set - if ('org' not in params or - params['org'] is None): - raise ValueError("Missing the required parameter `org` when calling `list_launch_plan_ids2`") # noqa: E501 - # verify the required parameter 'project' is set - if ('project' not in params or - params['project'] is None): - raise ValueError("Missing the required parameter `project` when calling `list_launch_plan_ids2`") # noqa: E501 - # verify the required parameter 'domain' is set - if ('domain' not in params or - params['domain'] is None): - raise ValueError("Missing the required parameter `domain` when calling `list_launch_plan_ids2`") # noqa: E501 collection_formats = {} path_params = {} - if 'org' in params: - path_params['org'] = params['org'] # noqa: E501 - if 'project' in params: - path_params['project'] = params['project'] # noqa: E501 - if 'domain' in params: - path_params['domain'] = params['domain'] # noqa: E501 query_params = [] - if 'limit' in params: - query_params.append(('limit', params['limit'])) # noqa: E501 - if 'token' in params: - query_params.append(('token', params['token'])) # noqa: E501 - if 'sort_by_key' in params: - query_params.append(('sort_by.key', params['sort_by_key'])) # noqa: E501 - if 'sort_by_direction' in params: - query_params.append(('sort_by.direction', params['sort_by_direction'])) # noqa: E501 - if 'filters' in params: - query_params.append(('filters', params['filters'])) # noqa: E501 + if 'resource_type' in params: + query_params.append(('resource_type', params['resource_type'])) # noqa: E501 + if 'org' in params: + query_params.append(('org', params['org'])) # noqa: E501 header_params = {} @@ -6893,14 +8402,14 @@ def list_launch_plan_ids2_with_http_info(self, org, project, domain, **kwargs): auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/launch_plan_ids/org/{org}/{project}/{domain}', 'GET', + '/api/v1/matchable_attributes', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminNamedEntityIdentifierList', # noqa: E501 + response_type='AdminListMatchableAttributesResponse', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -6908,59 +8417,45 @@ def list_launch_plan_ids2_with_http_info(self, org, project, domain, **kwargs): _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def list_launch_plans(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. # noqa: E501 + def list_matchable_attributes2(self, org, **kwargs): # noqa: E501 + """Lists custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a specific resource type. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_launch_plans(id_project, id_domain, id_name, async_req=True) + >>> thread = api.list_matchable_attributes2(org, async_req=True) >>> result = thread.get() :param async_req bool - :param str id_project: Name of the project the resource belongs to. (required) - :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) - :param str id_org: Optional, org key applied to the resource. - :param int limit: Indicates the number of resources to be returned. +required. - :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. - :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. - :param str sort_by_key: Indicates an attribute to sort the response values. +required. - :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :return: AdminLaunchPlanList + :param str org: Optional, org filter applied to list project requests. (required) + :param str resource_type: +required. - TASK_RESOURCE: Applies to customizable task resource requests and limits. - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources. - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment. - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec. - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type. - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides. - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run. + :return: AdminListMatchableAttributesResponse If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.list_launch_plans_with_http_info(id_project, id_domain, id_name, **kwargs) # noqa: E501 + return self.list_matchable_attributes2_with_http_info(org, **kwargs) # noqa: E501 else: - (data) = self.list_launch_plans_with_http_info(id_project, id_domain, id_name, **kwargs) # noqa: E501 + (data) = self.list_matchable_attributes2_with_http_info(org, **kwargs) # noqa: E501 return data - def list_launch_plans_with_http_info(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. # noqa: E501 + def list_matchable_attributes2_with_http_info(self, org, **kwargs): # noqa: E501 + """Lists custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a specific resource type. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_launch_plans_with_http_info(id_project, id_domain, id_name, async_req=True) + >>> thread = api.list_matchable_attributes2_with_http_info(org, async_req=True) >>> result = thread.get() :param async_req bool - :param str id_project: Name of the project the resource belongs to. (required) - :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) - :param str id_org: Optional, org key applied to the resource. - :param int limit: Indicates the number of resources to be returned. +required. - :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. - :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. - :param str sort_by_key: Indicates an attribute to sort the response values. +required. - :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :return: AdminLaunchPlanList + :param str org: Optional, org filter applied to list project requests. (required) + :param str resource_type: +required. - TASK_RESOURCE: Applies to customizable task resource requests and limits. - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources. - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment. - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec. - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type. - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides. - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run. + :return: AdminListMatchableAttributesResponse If the method is called asynchronously, returns the request thread. """ - all_params = ['id_project', 'id_domain', 'id_name', 'id_org', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # noqa: E501 + all_params = ['org', 'resource_type'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -6971,46 +8466,24 @@ def list_launch_plans_with_http_info(self, id_project, id_domain, id_name, **kwa if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method list_launch_plans" % key + " to method list_matchable_attributes2" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'id_project' is set - if ('id_project' not in params or - params['id_project'] is None): - raise ValueError("Missing the required parameter `id_project` when calling `list_launch_plans`") # noqa: E501 - # verify the required parameter 'id_domain' is set - if ('id_domain' not in params or - params['id_domain'] is None): - raise ValueError("Missing the required parameter `id_domain` when calling `list_launch_plans`") # noqa: E501 - # verify the required parameter 'id_name' is set - if ('id_name' not in params or - params['id_name'] is None): - raise ValueError("Missing the required parameter `id_name` when calling `list_launch_plans`") # noqa: E501 + # verify the required parameter 'org' is set + if ('org' not in params or + params['org'] is None): + raise ValueError("Missing the required parameter `org` when calling `list_matchable_attributes2`") # noqa: E501 collection_formats = {} path_params = {} - if 'id_project' in params: - path_params['id.project'] = params['id_project'] # noqa: E501 - if 'id_domain' in params: - path_params['id.domain'] = params['id_domain'] # noqa: E501 - if 'id_name' in params: - path_params['id.name'] = params['id_name'] # noqa: E501 + if 'org' in params: + path_params['org'] = params['org'] # noqa: E501 query_params = [] - if 'id_org' in params: - query_params.append(('id.org', params['id_org'])) # noqa: E501 - if 'limit' in params: - query_params.append(('limit', params['limit'])) # noqa: E501 - if 'token' in params: - query_params.append(('token', params['token'])) # noqa: E501 - if 'filters' in params: - query_params.append(('filters', params['filters'])) # noqa: E501 - if 'sort_by_key' in params: - query_params.append(('sort_by.key', params['sort_by_key'])) # noqa: E501 - if 'sort_by_direction' in params: - query_params.append(('sort_by.direction', params['sort_by_direction'])) # noqa: E501 + if 'resource_type' in params: + query_params.append(('resource_type', params['resource_type'])) # noqa: E501 header_params = {} @@ -7030,14 +8503,14 @@ def list_launch_plans_with_http_info(self, id_project, id_domain, id_name, **kwa auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}', 'GET', + '/api/v1/matchable_attributes/org/{org}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminLaunchPlanList', # noqa: E501 + response_type='AdminListMatchableAttributesResponse', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -7045,59 +8518,59 @@ def list_launch_plans_with_http_info(self, id_project, id_domain, id_name, **kwa _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def list_launch_plans2(self, id_org, id_project, id_domain, id_name, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. # noqa: E501 + def list_named_entities(self, resource_type, project, domain, **kwargs): # noqa: E501 + """Returns a list of :ref:`ref_flyteidl.admin.NamedEntity` objects. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_launch_plans2(id_org, id_project, id_domain, id_name, async_req=True) + >>> thread = api.list_named_entities(resource_type, project, domain, async_req=True) >>> result = thread.get() :param async_req bool - :param str id_org: Optional, org key applied to the resource. (required) - :param str id_project: Name of the project the resource belongs to. (required) - :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) - :param int limit: Indicates the number of resources to be returned. +required. - :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. - :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. + :param str resource_type: Resource type of the metadata to query. One of Task, Workflow or LaunchPlan. +required (required) + :param str project: Name of the project that contains the identifiers. +required (required) + :param str domain: Name of the domain the identifiers belongs to within the project. (required) + :param int limit: Indicates the number of resources to be returned. + :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. :param str sort_by_key: Indicates an attribute to sort the response values. +required. :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :return: AdminLaunchPlanList + :param str filters: Indicates a list of filters passed as string. +optional. + :param str org: Optional, org key applied to the resource. + :return: AdminNamedEntityList If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.list_launch_plans2_with_http_info(id_org, id_project, id_domain, id_name, **kwargs) # noqa: E501 + return self.list_named_entities_with_http_info(resource_type, project, domain, **kwargs) # noqa: E501 else: - (data) = self.list_launch_plans2_with_http_info(id_org, id_project, id_domain, id_name, **kwargs) # noqa: E501 + (data) = self.list_named_entities_with_http_info(resource_type, project, domain, **kwargs) # noqa: E501 return data - def list_launch_plans2_with_http_info(self, id_org, id_project, id_domain, id_name, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. # noqa: E501 + def list_named_entities_with_http_info(self, resource_type, project, domain, **kwargs): # noqa: E501 + """Returns a list of :ref:`ref_flyteidl.admin.NamedEntity` objects. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_launch_plans2_with_http_info(id_org, id_project, id_domain, id_name, async_req=True) + >>> thread = api.list_named_entities_with_http_info(resource_type, project, domain, async_req=True) >>> result = thread.get() :param async_req bool - :param str id_org: Optional, org key applied to the resource. (required) - :param str id_project: Name of the project the resource belongs to. (required) - :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) - :param int limit: Indicates the number of resources to be returned. +required. - :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. - :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. + :param str resource_type: Resource type of the metadata to query. One of Task, Workflow or LaunchPlan. +required (required) + :param str project: Name of the project that contains the identifiers. +required (required) + :param str domain: Name of the domain the identifiers belongs to within the project. (required) + :param int limit: Indicates the number of resources to be returned. + :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. :param str sort_by_key: Indicates an attribute to sort the response values. +required. :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :return: AdminLaunchPlanList + :param str filters: Indicates a list of filters passed as string. +optional. + :param str org: Optional, org key applied to the resource. + :return: AdminNamedEntityList If the method is called asynchronously, returns the request thread. """ - all_params = ['id_org', 'id_project', 'id_domain', 'id_name', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # noqa: E501 + all_params = ['resource_type', 'project', 'domain', 'limit', 'token', 'sort_by_key', 'sort_by_direction', 'filters', 'org'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -7108,50 +8581,46 @@ def list_launch_plans2_with_http_info(self, id_org, id_project, id_domain, id_na if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method list_launch_plans2" % key + " to method list_named_entities" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'id_org' is set - if ('id_org' not in params or - params['id_org'] is None): - raise ValueError("Missing the required parameter `id_org` when calling `list_launch_plans2`") # noqa: E501 - # verify the required parameter 'id_project' is set - if ('id_project' not in params or - params['id_project'] is None): - raise ValueError("Missing the required parameter `id_project` when calling `list_launch_plans2`") # noqa: E501 - # verify the required parameter 'id_domain' is set - if ('id_domain' not in params or - params['id_domain'] is None): - raise ValueError("Missing the required parameter `id_domain` when calling `list_launch_plans2`") # noqa: E501 - # verify the required parameter 'id_name' is set - if ('id_name' not in params or - params['id_name'] is None): - raise ValueError("Missing the required parameter `id_name` when calling `list_launch_plans2`") # noqa: E501 + # verify the required parameter 'resource_type' is set + if ('resource_type' not in params or + params['resource_type'] is None): + raise ValueError("Missing the required parameter `resource_type` when calling `list_named_entities`") # noqa: E501 + # verify the required parameter 'project' is set + if ('project' not in params or + params['project'] is None): + raise ValueError("Missing the required parameter `project` when calling `list_named_entities`") # noqa: E501 + # verify the required parameter 'domain' is set + if ('domain' not in params or + params['domain'] is None): + raise ValueError("Missing the required parameter `domain` when calling `list_named_entities`") # noqa: E501 collection_formats = {} path_params = {} - if 'id_org' in params: - path_params['id.org'] = params['id_org'] # noqa: E501 - if 'id_project' in params: - path_params['id.project'] = params['id_project'] # noqa: E501 - if 'id_domain' in params: - path_params['id.domain'] = params['id_domain'] # noqa: E501 - if 'id_name' in params: - path_params['id.name'] = params['id_name'] # noqa: E501 + if 'resource_type' in params: + path_params['resource_type'] = params['resource_type'] # noqa: E501 + if 'project' in params: + path_params['project'] = params['project'] # noqa: E501 + if 'domain' in params: + path_params['domain'] = params['domain'] # noqa: E501 query_params = [] if 'limit' in params: query_params.append(('limit', params['limit'])) # noqa: E501 if 'token' in params: query_params.append(('token', params['token'])) # noqa: E501 - if 'filters' in params: - query_params.append(('filters', params['filters'])) # noqa: E501 if 'sort_by_key' in params: query_params.append(('sort_by.key', params['sort_by_key'])) # noqa: E501 if 'sort_by_direction' in params: query_params.append(('sort_by.direction', params['sort_by_direction'])) # noqa: E501 + if 'filters' in params: + query_params.append(('filters', params['filters'])) # noqa: E501 + if 'org' in params: + query_params.append(('org', params['org'])) # noqa: E501 header_params = {} @@ -7171,14 +8640,14 @@ def list_launch_plans2_with_http_info(self, id_org, id_project, id_domain, id_na auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/launch_plans/org/{id.org}/{id.project}/{id.domain}/{id.name}', 'GET', + '/api/v1/named_entities/{resource_type}/{project}/{domain}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminLaunchPlanList', # noqa: E501 + response_type='AdminNamedEntityList', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -7186,59 +8655,59 @@ def list_launch_plans2_with_http_info(self, id_org, id_project, id_domain, id_na _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def list_launch_plans3(self, id_project, id_domain, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. # noqa: E501 + def list_named_entities2(self, resource_type, org, project, domain, **kwargs): # noqa: E501 + """Returns a list of :ref:`ref_flyteidl.admin.NamedEntity` objects. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_launch_plans3(id_project, id_domain, async_req=True) + >>> thread = api.list_named_entities2(resource_type, org, project, domain, async_req=True) >>> result = thread.get() :param async_req bool - :param str id_project: Name of the project the resource belongs to. (required) - :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. - :param str id_org: Optional, org key applied to the resource. - :param int limit: Indicates the number of resources to be returned. +required. - :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. - :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. + :param str resource_type: Resource type of the metadata to query. One of Task, Workflow or LaunchPlan. +required (required) + :param str org: Optional, org key applied to the resource. (required) + :param str project: Name of the project that contains the identifiers. +required (required) + :param str domain: Name of the domain the identifiers belongs to within the project. (required) + :param int limit: Indicates the number of resources to be returned. + :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. :param str sort_by_key: Indicates an attribute to sort the response values. +required. :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :return: AdminLaunchPlanList + :param str filters: Indicates a list of filters passed as string. +optional. + :return: AdminNamedEntityList If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.list_launch_plans3_with_http_info(id_project, id_domain, **kwargs) # noqa: E501 + return self.list_named_entities2_with_http_info(resource_type, org, project, domain, **kwargs) # noqa: E501 else: - (data) = self.list_launch_plans3_with_http_info(id_project, id_domain, **kwargs) # noqa: E501 + (data) = self.list_named_entities2_with_http_info(resource_type, org, project, domain, **kwargs) # noqa: E501 return data - def list_launch_plans3_with_http_info(self, id_project, id_domain, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. # noqa: E501 + def list_named_entities2_with_http_info(self, resource_type, org, project, domain, **kwargs): # noqa: E501 + """Returns a list of :ref:`ref_flyteidl.admin.NamedEntity` objects. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_launch_plans3_with_http_info(id_project, id_domain, async_req=True) + >>> thread = api.list_named_entities2_with_http_info(resource_type, org, project, domain, async_req=True) >>> result = thread.get() :param async_req bool - :param str id_project: Name of the project the resource belongs to. (required) - :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. - :param str id_org: Optional, org key applied to the resource. - :param int limit: Indicates the number of resources to be returned. +required. - :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. - :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. + :param str resource_type: Resource type of the metadata to query. One of Task, Workflow or LaunchPlan. +required (required) + :param str org: Optional, org key applied to the resource. (required) + :param str project: Name of the project that contains the identifiers. +required (required) + :param str domain: Name of the domain the identifiers belongs to within the project. (required) + :param int limit: Indicates the number of resources to be returned. + :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. :param str sort_by_key: Indicates an attribute to sort the response values. +required. :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :return: AdminLaunchPlanList + :param str filters: Indicates a list of filters passed as string. +optional. + :return: AdminNamedEntityList If the method is called asynchronously, returns the request thread. """ - all_params = ['id_project', 'id_domain', 'id_name', 'id_org', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # noqa: E501 + all_params = ['resource_type', 'org', 'project', 'domain', 'limit', 'token', 'sort_by_key', 'sort_by_direction', 'filters'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -7249,42 +8718,50 @@ def list_launch_plans3_with_http_info(self, id_project, id_domain, **kwargs): # if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method list_launch_plans3" % key + " to method list_named_entities2" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'id_project' is set - if ('id_project' not in params or - params['id_project'] is None): - raise ValueError("Missing the required parameter `id_project` when calling `list_launch_plans3`") # noqa: E501 - # verify the required parameter 'id_domain' is set - if ('id_domain' not in params or - params['id_domain'] is None): - raise ValueError("Missing the required parameter `id_domain` when calling `list_launch_plans3`") # noqa: E501 + # verify the required parameter 'resource_type' is set + if ('resource_type' not in params or + params['resource_type'] is None): + raise ValueError("Missing the required parameter `resource_type` when calling `list_named_entities2`") # noqa: E501 + # verify the required parameter 'org' is set + if ('org' not in params or + params['org'] is None): + raise ValueError("Missing the required parameter `org` when calling `list_named_entities2`") # noqa: E501 + # verify the required parameter 'project' is set + if ('project' not in params or + params['project'] is None): + raise ValueError("Missing the required parameter `project` when calling `list_named_entities2`") # noqa: E501 + # verify the required parameter 'domain' is set + if ('domain' not in params or + params['domain'] is None): + raise ValueError("Missing the required parameter `domain` when calling `list_named_entities2`") # noqa: E501 collection_formats = {} path_params = {} - if 'id_project' in params: - path_params['id.project'] = params['id_project'] # noqa: E501 - if 'id_domain' in params: - path_params['id.domain'] = params['id_domain'] # noqa: E501 + if 'resource_type' in params: + path_params['resource_type'] = params['resource_type'] # noqa: E501 + if 'org' in params: + path_params['org'] = params['org'] # noqa: E501 + if 'project' in params: + path_params['project'] = params['project'] # noqa: E501 + if 'domain' in params: + path_params['domain'] = params['domain'] # noqa: E501 query_params = [] - if 'id_name' in params: - query_params.append(('id.name', params['id_name'])) # noqa: E501 - if 'id_org' in params: - query_params.append(('id.org', params['id_org'])) # noqa: E501 if 'limit' in params: query_params.append(('limit', params['limit'])) # noqa: E501 if 'token' in params: query_params.append(('token', params['token'])) # noqa: E501 - if 'filters' in params: - query_params.append(('filters', params['filters'])) # noqa: E501 if 'sort_by_key' in params: query_params.append(('sort_by.key', params['sort_by_key'])) # noqa: E501 if 'sort_by_direction' in params: query_params.append(('sort_by.direction', params['sort_by_direction'])) # noqa: E501 + if 'filters' in params: + query_params.append(('filters', params['filters'])) # noqa: E501 header_params = {} @@ -7304,14 +8781,14 @@ def list_launch_plans3_with_http_info(self, id_project, id_domain, **kwargs): # auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/launch_plans/{id.project}/{id.domain}', 'GET', + '/api/v1/named_entities/{resource_type}/org/{org}/{project}/{domain}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminLaunchPlanList', # noqa: E501 + response_type='AdminNamedEntityList', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -7319,59 +8796,61 @@ def list_launch_plans3_with_http_info(self, id_project, id_domain, **kwargs): # _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def list_launch_plans4(self, id_org, id_project, id_domain, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. # noqa: E501 + def list_node_executions(self, workflow_execution_id_project, workflow_execution_id_domain, workflow_execution_id_name, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution`. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_launch_plans4(id_org, id_project, id_domain, async_req=True) + >>> thread = api.list_node_executions(workflow_execution_id_project, workflow_execution_id_domain, workflow_execution_id_name, async_req=True) >>> result = thread.get() :param async_req bool - :param str id_org: Optional, org key applied to the resource. (required) - :param str id_project: Name of the project the resource belongs to. (required) - :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. + :param str workflow_execution_id_project: Name of the project the resource belongs to. (required) + :param str workflow_execution_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str workflow_execution_id_name: User or system provided value for the resource. (required) + :param str workflow_execution_id_org: Optional, org key applied to the resource. :param int limit: Indicates the number of resources to be returned. +required. - :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. + :param str token: :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. :param str sort_by_key: Indicates an attribute to sort the response values. +required. :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :return: AdminLaunchPlanList + :param str unique_parent_id: Unique identifier of the parent node in the execution +optional. + :return: AdminNodeExecutionList If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.list_launch_plans4_with_http_info(id_org, id_project, id_domain, **kwargs) # noqa: E501 + return self.list_node_executions_with_http_info(workflow_execution_id_project, workflow_execution_id_domain, workflow_execution_id_name, **kwargs) # noqa: E501 else: - (data) = self.list_launch_plans4_with_http_info(id_org, id_project, id_domain, **kwargs) # noqa: E501 + (data) = self.list_node_executions_with_http_info(workflow_execution_id_project, workflow_execution_id_domain, workflow_execution_id_name, **kwargs) # noqa: E501 return data - def list_launch_plans4_with_http_info(self, id_org, id_project, id_domain, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. # noqa: E501 + def list_node_executions_with_http_info(self, workflow_execution_id_project, workflow_execution_id_domain, workflow_execution_id_name, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution`. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_launch_plans4_with_http_info(id_org, id_project, id_domain, async_req=True) + >>> thread = api.list_node_executions_with_http_info(workflow_execution_id_project, workflow_execution_id_domain, workflow_execution_id_name, async_req=True) >>> result = thread.get() :param async_req bool - :param str id_org: Optional, org key applied to the resource. (required) - :param str id_project: Name of the project the resource belongs to. (required) - :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. + :param str workflow_execution_id_project: Name of the project the resource belongs to. (required) + :param str workflow_execution_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str workflow_execution_id_name: User or system provided value for the resource. (required) + :param str workflow_execution_id_org: Optional, org key applied to the resource. :param int limit: Indicates the number of resources to be returned. +required. - :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. + :param str token: :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. :param str sort_by_key: Indicates an attribute to sort the response values. +required. :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :return: AdminLaunchPlanList + :param str unique_parent_id: Unique identifier of the parent node in the execution +optional. + :return: AdminNodeExecutionList If the method is called asynchronously, returns the request thread. """ - all_params = ['id_org', 'id_project', 'id_domain', 'id_name', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # noqa: E501 + all_params = ['workflow_execution_id_project', 'workflow_execution_id_domain', 'workflow_execution_id_name', 'workflow_execution_id_org', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction', 'unique_parent_id'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -7382,36 +8861,36 @@ def list_launch_plans4_with_http_info(self, id_org, id_project, id_domain, **kwa if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method list_launch_plans4" % key + " to method list_node_executions" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'id_org' is set - if ('id_org' not in params or - params['id_org'] is None): - raise ValueError("Missing the required parameter `id_org` when calling `list_launch_plans4`") # noqa: E501 - # verify the required parameter 'id_project' is set - if ('id_project' not in params or - params['id_project'] is None): - raise ValueError("Missing the required parameter `id_project` when calling `list_launch_plans4`") # noqa: E501 - # verify the required parameter 'id_domain' is set - if ('id_domain' not in params or - params['id_domain'] is None): - raise ValueError("Missing the required parameter `id_domain` when calling `list_launch_plans4`") # noqa: E501 + # verify the required parameter 'workflow_execution_id_project' is set + if ('workflow_execution_id_project' not in params or + params['workflow_execution_id_project'] is None): + raise ValueError("Missing the required parameter `workflow_execution_id_project` when calling `list_node_executions`") # noqa: E501 + # verify the required parameter 'workflow_execution_id_domain' is set + if ('workflow_execution_id_domain' not in params or + params['workflow_execution_id_domain'] is None): + raise ValueError("Missing the required parameter `workflow_execution_id_domain` when calling `list_node_executions`") # noqa: E501 + # verify the required parameter 'workflow_execution_id_name' is set + if ('workflow_execution_id_name' not in params or + params['workflow_execution_id_name'] is None): + raise ValueError("Missing the required parameter `workflow_execution_id_name` when calling `list_node_executions`") # noqa: E501 collection_formats = {} path_params = {} - if 'id_org' in params: - path_params['id.org'] = params['id_org'] # noqa: E501 - if 'id_project' in params: - path_params['id.project'] = params['id_project'] # noqa: E501 - if 'id_domain' in params: - path_params['id.domain'] = params['id_domain'] # noqa: E501 + if 'workflow_execution_id_project' in params: + path_params['workflow_execution_id.project'] = params['workflow_execution_id_project'] # noqa: E501 + if 'workflow_execution_id_domain' in params: + path_params['workflow_execution_id.domain'] = params['workflow_execution_id_domain'] # noqa: E501 + if 'workflow_execution_id_name' in params: + path_params['workflow_execution_id.name'] = params['workflow_execution_id_name'] # noqa: E501 query_params = [] - if 'id_name' in params: - query_params.append(('id.name', params['id_name'])) # noqa: E501 + if 'workflow_execution_id_org' in params: + query_params.append(('workflow_execution_id.org', params['workflow_execution_id_org'])) # noqa: E501 if 'limit' in params: query_params.append(('limit', params['limit'])) # noqa: E501 if 'token' in params: @@ -7422,6 +8901,8 @@ def list_launch_plans4_with_http_info(self, id_org, id_project, id_domain, **kwa query_params.append(('sort_by.key', params['sort_by_key'])) # noqa: E501 if 'sort_by_direction' in params: query_params.append(('sort_by.direction', params['sort_by_direction'])) # noqa: E501 + if 'unique_parent_id' in params: + query_params.append(('unique_parent_id', params['unique_parent_id'])) # noqa: E501 header_params = {} @@ -7441,14 +8922,14 @@ def list_launch_plans4_with_http_info(self, id_org, id_project, id_domain, **kwa auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/launch_plans/org/{id.org}/{id.project}/{id.domain}', 'GET', + '/api/v1/node_executions/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminLaunchPlanList', # noqa: E501 + response_type='AdminNodeExecutionList', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -7456,43 +8937,61 @@ def list_launch_plans4_with_http_info(self, id_org, id_project, id_domain, **kwa _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def list_matchable_attributes(self, **kwargs): # noqa: E501 - """Lists custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a specific resource type. # noqa: E501 + def list_node_executions2(self, workflow_execution_id_org, workflow_execution_id_project, workflow_execution_id_domain, workflow_execution_id_name, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution`. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_matchable_attributes(async_req=True) + >>> thread = api.list_node_executions2(workflow_execution_id_org, workflow_execution_id_project, workflow_execution_id_domain, workflow_execution_id_name, async_req=True) >>> result = thread.get() :param async_req bool - :param str resource_type: +required. - TASK_RESOURCE: Applies to customizable task resource requests and limits. - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources. - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment. - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec. - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type. - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides. - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run. - :return: AdminListMatchableAttributesResponse + :param str workflow_execution_id_org: Optional, org key applied to the resource. (required) + :param str workflow_execution_id_project: Name of the project the resource belongs to. (required) + :param str workflow_execution_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str workflow_execution_id_name: User or system provided value for the resource. (required) + :param int limit: Indicates the number of resources to be returned. +required. + :param str token: + :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. + :param str sort_by_key: Indicates an attribute to sort the response values. +required. + :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + :param str unique_parent_id: Unique identifier of the parent node in the execution +optional. + :return: AdminNodeExecutionList If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.list_matchable_attributes_with_http_info(**kwargs) # noqa: E501 + return self.list_node_executions2_with_http_info(workflow_execution_id_org, workflow_execution_id_project, workflow_execution_id_domain, workflow_execution_id_name, **kwargs) # noqa: E501 else: - (data) = self.list_matchable_attributes_with_http_info(**kwargs) # noqa: E501 + (data) = self.list_node_executions2_with_http_info(workflow_execution_id_org, workflow_execution_id_project, workflow_execution_id_domain, workflow_execution_id_name, **kwargs) # noqa: E501 return data - def list_matchable_attributes_with_http_info(self, **kwargs): # noqa: E501 - """Lists custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a specific resource type. # noqa: E501 + def list_node_executions2_with_http_info(self, workflow_execution_id_org, workflow_execution_id_project, workflow_execution_id_domain, workflow_execution_id_name, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution`. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_matchable_attributes_with_http_info(async_req=True) + >>> thread = api.list_node_executions2_with_http_info(workflow_execution_id_org, workflow_execution_id_project, workflow_execution_id_domain, workflow_execution_id_name, async_req=True) >>> result = thread.get() :param async_req bool - :param str resource_type: +required. - TASK_RESOURCE: Applies to customizable task resource requests and limits. - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources. - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment. - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec. - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type. - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides. - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run. - :return: AdminListMatchableAttributesResponse + :param str workflow_execution_id_org: Optional, org key applied to the resource. (required) + :param str workflow_execution_id_project: Name of the project the resource belongs to. (required) + :param str workflow_execution_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str workflow_execution_id_name: User or system provided value for the resource. (required) + :param int limit: Indicates the number of resources to be returned. +required. + :param str token: + :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. + :param str sort_by_key: Indicates an attribute to sort the response values. +required. + :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. + :param str unique_parent_id: Unique identifier of the parent node in the execution +optional. + :return: AdminNodeExecutionList If the method is called asynchronously, returns the request thread. """ - all_params = ['resource_type'] # noqa: E501 + all_params = ['workflow_execution_id_org', 'workflow_execution_id_project', 'workflow_execution_id_domain', 'workflow_execution_id_name', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction', 'unique_parent_id'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -7503,18 +9002,52 @@ def list_matchable_attributes_with_http_info(self, **kwargs): # noqa: E501 if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method list_matchable_attributes" % key + " to method list_node_executions2" % key ) params[key] = val del params['kwargs'] + # verify the required parameter 'workflow_execution_id_org' is set + if ('workflow_execution_id_org' not in params or + params['workflow_execution_id_org'] is None): + raise ValueError("Missing the required parameter `workflow_execution_id_org` when calling `list_node_executions2`") # noqa: E501 + # verify the required parameter 'workflow_execution_id_project' is set + if ('workflow_execution_id_project' not in params or + params['workflow_execution_id_project'] is None): + raise ValueError("Missing the required parameter `workflow_execution_id_project` when calling `list_node_executions2`") # noqa: E501 + # verify the required parameter 'workflow_execution_id_domain' is set + if ('workflow_execution_id_domain' not in params or + params['workflow_execution_id_domain'] is None): + raise ValueError("Missing the required parameter `workflow_execution_id_domain` when calling `list_node_executions2`") # noqa: E501 + # verify the required parameter 'workflow_execution_id_name' is set + if ('workflow_execution_id_name' not in params or + params['workflow_execution_id_name'] is None): + raise ValueError("Missing the required parameter `workflow_execution_id_name` when calling `list_node_executions2`") # noqa: E501 collection_formats = {} path_params = {} + if 'workflow_execution_id_org' in params: + path_params['workflow_execution_id.org'] = params['workflow_execution_id_org'] # noqa: E501 + if 'workflow_execution_id_project' in params: + path_params['workflow_execution_id.project'] = params['workflow_execution_id_project'] # noqa: E501 + if 'workflow_execution_id_domain' in params: + path_params['workflow_execution_id.domain'] = params['workflow_execution_id_domain'] # noqa: E501 + if 'workflow_execution_id_name' in params: + path_params['workflow_execution_id.name'] = params['workflow_execution_id_name'] # noqa: E501 query_params = [] - if 'resource_type' in params: - query_params.append(('resource_type', params['resource_type'])) # noqa: E501 + if 'limit' in params: + query_params.append(('limit', params['limit'])) # noqa: E501 + if 'token' in params: + query_params.append(('token', params['token'])) # noqa: E501 + if 'filters' in params: + query_params.append(('filters', params['filters'])) # noqa: E501 + if 'sort_by_key' in params: + query_params.append(('sort_by.key', params['sort_by_key'])) # noqa: E501 + if 'sort_by_direction' in params: + query_params.append(('sort_by.direction', params['sort_by_direction'])) # noqa: E501 + if 'unique_parent_id' in params: + query_params.append(('unique_parent_id', params['unique_parent_id'])) # noqa: E501 header_params = {} @@ -7534,14 +9067,14 @@ def list_matchable_attributes_with_http_info(self, **kwargs): # noqa: E501 auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/matchable_attributes', 'GET', + '/api/v1/node_executions/org/{workflow_execution_id.org}/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminListMatchableAttributesResponse', # noqa: E501 + response_type='AdminNodeExecutionList', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -7549,59 +9082,75 @@ def list_matchable_attributes_with_http_info(self, **kwargs): # noqa: E501 _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def list_named_entities(self, resource_type, project, domain, **kwargs): # noqa: E501 - """Returns a list of :ref:`ref_flyteidl.admin.NamedEntity` objects. # noqa: E501 + def list_node_executions_for_task(self, task_execution_id_node_execution_id_execution_id_project, task_execution_id_node_execution_id_execution_id_domain, task_execution_id_node_execution_id_execution_id_name, task_execution_id_node_execution_id_node_id, task_execution_id_task_id_project, task_execution_id_task_id_domain, task_execution_id_task_id_name, task_execution_id_task_id_version, task_execution_id_retry_attempt, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution` launched by the reference :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_named_entities(resource_type, project, domain, async_req=True) + >>> thread = api.list_node_executions_for_task(task_execution_id_node_execution_id_execution_id_project, task_execution_id_node_execution_id_execution_id_domain, task_execution_id_node_execution_id_execution_id_name, task_execution_id_node_execution_id_node_id, task_execution_id_task_id_project, task_execution_id_task_id_domain, task_execution_id_task_id_name, task_execution_id_task_id_version, task_execution_id_retry_attempt, async_req=True) >>> result = thread.get() :param async_req bool - :param str resource_type: Resource type of the metadata to query. One of Task, Workflow or LaunchPlan. +required (required) - :param str project: Name of the project that contains the identifiers. +required (required) - :param str domain: Name of the domain the identifiers belongs to within the project. (required) - :param int limit: Indicates the number of resources to be returned. - :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. + :param str task_execution_id_node_execution_id_execution_id_project: Name of the project the resource belongs to. (required) + :param str task_execution_id_node_execution_id_execution_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str task_execution_id_node_execution_id_execution_id_name: User or system provided value for the resource. (required) + :param str task_execution_id_node_execution_id_node_id: (required) + :param str task_execution_id_task_id_project: Name of the project the resource belongs to. (required) + :param str task_execution_id_task_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str task_execution_id_task_id_name: User provided value for the resource. (required) + :param str task_execution_id_task_id_version: Specific version of the resource. (required) + :param int task_execution_id_retry_attempt: (required) + :param str task_execution_id_task_id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects + :param str task_execution_id_task_id_org: Optional, org key applied to the resource. + :param str task_execution_id_node_execution_id_execution_id_org: Optional, org key applied to the resource. + :param int limit: Indicates the number of resources to be returned. +required. + :param str token: In the case of multiple pages of results, the, server-provided token can be used to fetch the next page in a query. +optional. + :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. :param str sort_by_key: Indicates an attribute to sort the response values. +required. :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :param str filters: Indicates a list of filters passed as string. +optional. - :param str org: Optional, org key applied to the resource. - :return: AdminNamedEntityList + :return: AdminNodeExecutionList If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.list_named_entities_with_http_info(resource_type, project, domain, **kwargs) # noqa: E501 + return self.list_node_executions_for_task_with_http_info(task_execution_id_node_execution_id_execution_id_project, task_execution_id_node_execution_id_execution_id_domain, task_execution_id_node_execution_id_execution_id_name, task_execution_id_node_execution_id_node_id, task_execution_id_task_id_project, task_execution_id_task_id_domain, task_execution_id_task_id_name, task_execution_id_task_id_version, task_execution_id_retry_attempt, **kwargs) # noqa: E501 else: - (data) = self.list_named_entities_with_http_info(resource_type, project, domain, **kwargs) # noqa: E501 + (data) = self.list_node_executions_for_task_with_http_info(task_execution_id_node_execution_id_execution_id_project, task_execution_id_node_execution_id_execution_id_domain, task_execution_id_node_execution_id_execution_id_name, task_execution_id_node_execution_id_node_id, task_execution_id_task_id_project, task_execution_id_task_id_domain, task_execution_id_task_id_name, task_execution_id_task_id_version, task_execution_id_retry_attempt, **kwargs) # noqa: E501 return data - def list_named_entities_with_http_info(self, resource_type, project, domain, **kwargs): # noqa: E501 - """Returns a list of :ref:`ref_flyteidl.admin.NamedEntity` objects. # noqa: E501 + def list_node_executions_for_task_with_http_info(self, task_execution_id_node_execution_id_execution_id_project, task_execution_id_node_execution_id_execution_id_domain, task_execution_id_node_execution_id_execution_id_name, task_execution_id_node_execution_id_node_id, task_execution_id_task_id_project, task_execution_id_task_id_domain, task_execution_id_task_id_name, task_execution_id_task_id_version, task_execution_id_retry_attempt, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution` launched by the reference :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_named_entities_with_http_info(resource_type, project, domain, async_req=True) + >>> thread = api.list_node_executions_for_task_with_http_info(task_execution_id_node_execution_id_execution_id_project, task_execution_id_node_execution_id_execution_id_domain, task_execution_id_node_execution_id_execution_id_name, task_execution_id_node_execution_id_node_id, task_execution_id_task_id_project, task_execution_id_task_id_domain, task_execution_id_task_id_name, task_execution_id_task_id_version, task_execution_id_retry_attempt, async_req=True) >>> result = thread.get() :param async_req bool - :param str resource_type: Resource type of the metadata to query. One of Task, Workflow or LaunchPlan. +required (required) - :param str project: Name of the project that contains the identifiers. +required (required) - :param str domain: Name of the domain the identifiers belongs to within the project. (required) - :param int limit: Indicates the number of resources to be returned. - :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. + :param str task_execution_id_node_execution_id_execution_id_project: Name of the project the resource belongs to. (required) + :param str task_execution_id_node_execution_id_execution_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str task_execution_id_node_execution_id_execution_id_name: User or system provided value for the resource. (required) + :param str task_execution_id_node_execution_id_node_id: (required) + :param str task_execution_id_task_id_project: Name of the project the resource belongs to. (required) + :param str task_execution_id_task_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str task_execution_id_task_id_name: User provided value for the resource. (required) + :param str task_execution_id_task_id_version: Specific version of the resource. (required) + :param int task_execution_id_retry_attempt: (required) + :param str task_execution_id_task_id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects + :param str task_execution_id_task_id_org: Optional, org key applied to the resource. + :param str task_execution_id_node_execution_id_execution_id_org: Optional, org key applied to the resource. + :param int limit: Indicates the number of resources to be returned. +required. + :param str token: In the case of multiple pages of results, the, server-provided token can be used to fetch the next page in a query. +optional. + :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. :param str sort_by_key: Indicates an attribute to sort the response values. +required. :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :param str filters: Indicates a list of filters passed as string. +optional. - :param str org: Optional, org key applied to the resource. - :return: AdminNamedEntityList + :return: AdminNodeExecutionList If the method is called asynchronously, returns the request thread. """ - all_params = ['resource_type', 'project', 'domain', 'limit', 'token', 'sort_by_key', 'sort_by_direction', 'filters', 'org'] # noqa: E501 + all_params = ['task_execution_id_node_execution_id_execution_id_project', 'task_execution_id_node_execution_id_execution_id_domain', 'task_execution_id_node_execution_id_execution_id_name', 'task_execution_id_node_execution_id_node_id', 'task_execution_id_task_id_project', 'task_execution_id_task_id_domain', 'task_execution_id_task_id_name', 'task_execution_id_task_id_version', 'task_execution_id_retry_attempt', 'task_execution_id_task_id_resource_type', 'task_execution_id_task_id_org', 'task_execution_id_node_execution_id_execution_id_org', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -7612,46 +9161,86 @@ def list_named_entities_with_http_info(self, resource_type, project, domain, **k if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method list_named_entities" % key + " to method list_node_executions_for_task" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'resource_type' is set - if ('resource_type' not in params or - params['resource_type'] is None): - raise ValueError("Missing the required parameter `resource_type` when calling `list_named_entities`") # noqa: E501 - # verify the required parameter 'project' is set - if ('project' not in params or - params['project'] is None): - raise ValueError("Missing the required parameter `project` when calling `list_named_entities`") # noqa: E501 - # verify the required parameter 'domain' is set - if ('domain' not in params or - params['domain'] is None): - raise ValueError("Missing the required parameter `domain` when calling `list_named_entities`") # noqa: E501 + # verify the required parameter 'task_execution_id_node_execution_id_execution_id_project' is set + if ('task_execution_id_node_execution_id_execution_id_project' not in params or + params['task_execution_id_node_execution_id_execution_id_project'] is None): + raise ValueError("Missing the required parameter `task_execution_id_node_execution_id_execution_id_project` when calling `list_node_executions_for_task`") # noqa: E501 + # verify the required parameter 'task_execution_id_node_execution_id_execution_id_domain' is set + if ('task_execution_id_node_execution_id_execution_id_domain' not in params or + params['task_execution_id_node_execution_id_execution_id_domain'] is None): + raise ValueError("Missing the required parameter `task_execution_id_node_execution_id_execution_id_domain` when calling `list_node_executions_for_task`") # noqa: E501 + # verify the required parameter 'task_execution_id_node_execution_id_execution_id_name' is set + if ('task_execution_id_node_execution_id_execution_id_name' not in params or + params['task_execution_id_node_execution_id_execution_id_name'] is None): + raise ValueError("Missing the required parameter `task_execution_id_node_execution_id_execution_id_name` when calling `list_node_executions_for_task`") # noqa: E501 + # verify the required parameter 'task_execution_id_node_execution_id_node_id' is set + if ('task_execution_id_node_execution_id_node_id' not in params or + params['task_execution_id_node_execution_id_node_id'] is None): + raise ValueError("Missing the required parameter `task_execution_id_node_execution_id_node_id` when calling `list_node_executions_for_task`") # noqa: E501 + # verify the required parameter 'task_execution_id_task_id_project' is set + if ('task_execution_id_task_id_project' not in params or + params['task_execution_id_task_id_project'] is None): + raise ValueError("Missing the required parameter `task_execution_id_task_id_project` when calling `list_node_executions_for_task`") # noqa: E501 + # verify the required parameter 'task_execution_id_task_id_domain' is set + if ('task_execution_id_task_id_domain' not in params or + params['task_execution_id_task_id_domain'] is None): + raise ValueError("Missing the required parameter `task_execution_id_task_id_domain` when calling `list_node_executions_for_task`") # noqa: E501 + # verify the required parameter 'task_execution_id_task_id_name' is set + if ('task_execution_id_task_id_name' not in params or + params['task_execution_id_task_id_name'] is None): + raise ValueError("Missing the required parameter `task_execution_id_task_id_name` when calling `list_node_executions_for_task`") # noqa: E501 + # verify the required parameter 'task_execution_id_task_id_version' is set + if ('task_execution_id_task_id_version' not in params or + params['task_execution_id_task_id_version'] is None): + raise ValueError("Missing the required parameter `task_execution_id_task_id_version` when calling `list_node_executions_for_task`") # noqa: E501 + # verify the required parameter 'task_execution_id_retry_attempt' is set + if ('task_execution_id_retry_attempt' not in params or + params['task_execution_id_retry_attempt'] is None): + raise ValueError("Missing the required parameter `task_execution_id_retry_attempt` when calling `list_node_executions_for_task`") # noqa: E501 collection_formats = {} path_params = {} - if 'resource_type' in params: - path_params['resource_type'] = params['resource_type'] # noqa: E501 - if 'project' in params: - path_params['project'] = params['project'] # noqa: E501 - if 'domain' in params: - path_params['domain'] = params['domain'] # noqa: E501 + if 'task_execution_id_node_execution_id_execution_id_project' in params: + path_params['task_execution_id.node_execution_id.execution_id.project'] = params['task_execution_id_node_execution_id_execution_id_project'] # noqa: E501 + if 'task_execution_id_node_execution_id_execution_id_domain' in params: + path_params['task_execution_id.node_execution_id.execution_id.domain'] = params['task_execution_id_node_execution_id_execution_id_domain'] # noqa: E501 + if 'task_execution_id_node_execution_id_execution_id_name' in params: + path_params['task_execution_id.node_execution_id.execution_id.name'] = params['task_execution_id_node_execution_id_execution_id_name'] # noqa: E501 + if 'task_execution_id_node_execution_id_node_id' in params: + path_params['task_execution_id.node_execution_id.node_id'] = params['task_execution_id_node_execution_id_node_id'] # noqa: E501 + if 'task_execution_id_task_id_project' in params: + path_params['task_execution_id.task_id.project'] = params['task_execution_id_task_id_project'] # noqa: E501 + if 'task_execution_id_task_id_domain' in params: + path_params['task_execution_id.task_id.domain'] = params['task_execution_id_task_id_domain'] # noqa: E501 + if 'task_execution_id_task_id_name' in params: + path_params['task_execution_id.task_id.name'] = params['task_execution_id_task_id_name'] # noqa: E501 + if 'task_execution_id_task_id_version' in params: + path_params['task_execution_id.task_id.version'] = params['task_execution_id_task_id_version'] # noqa: E501 + if 'task_execution_id_retry_attempt' in params: + path_params['task_execution_id.retry_attempt'] = params['task_execution_id_retry_attempt'] # noqa: E501 query_params = [] + if 'task_execution_id_task_id_resource_type' in params: + query_params.append(('task_execution_id.task_id.resource_type', params['task_execution_id_task_id_resource_type'])) # noqa: E501 + if 'task_execution_id_task_id_org' in params: + query_params.append(('task_execution_id.task_id.org', params['task_execution_id_task_id_org'])) # noqa: E501 + if 'task_execution_id_node_execution_id_execution_id_org' in params: + query_params.append(('task_execution_id.node_execution_id.execution_id.org', params['task_execution_id_node_execution_id_execution_id_org'])) # noqa: E501 if 'limit' in params: query_params.append(('limit', params['limit'])) # noqa: E501 if 'token' in params: query_params.append(('token', params['token'])) # noqa: E501 + if 'filters' in params: + query_params.append(('filters', params['filters'])) # noqa: E501 if 'sort_by_key' in params: query_params.append(('sort_by.key', params['sort_by_key'])) # noqa: E501 if 'sort_by_direction' in params: query_params.append(('sort_by.direction', params['sort_by_direction'])) # noqa: E501 - if 'filters' in params: - query_params.append(('filters', params['filters'])) # noqa: E501 - if 'org' in params: - query_params.append(('org', params['org'])) # noqa: E501 header_params = {} @@ -7671,14 +9260,14 @@ def list_named_entities_with_http_info(self, resource_type, project, domain, **k auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/named_entities/{resource_type}/{project}/{domain}', 'GET', + '/api/v1/children/task_executions/{task_execution_id.node_execution_id.execution_id.project}/{task_execution_id.node_execution_id.execution_id.domain}/{task_execution_id.node_execution_id.execution_id.name}/{task_execution_id.node_execution_id.node_id}/{task_execution_id.task_id.project}/{task_execution_id.task_id.domain}/{task_execution_id.task_id.name}/{task_execution_id.task_id.version}/{task_execution_id.retry_attempt}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminNamedEntityList', # noqa: E501 + response_type='AdminNodeExecutionList', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -7686,59 +9275,75 @@ def list_named_entities_with_http_info(self, resource_type, project, domain, **k _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def list_named_entities2(self, resource_type, org, project, domain, **kwargs): # noqa: E501 - """Returns a list of :ref:`ref_flyteidl.admin.NamedEntity` objects. # noqa: E501 + def list_node_executions_for_task2(self, task_execution_id_node_execution_id_execution_id_org, task_execution_id_node_execution_id_execution_id_project, task_execution_id_node_execution_id_execution_id_domain, task_execution_id_node_execution_id_execution_id_name, task_execution_id_node_execution_id_node_id, task_execution_id_task_id_project, task_execution_id_task_id_domain, task_execution_id_task_id_name, task_execution_id_task_id_version, task_execution_id_retry_attempt, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution` launched by the reference :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_named_entities2(resource_type, org, project, domain, async_req=True) + >>> thread = api.list_node_executions_for_task2(task_execution_id_node_execution_id_execution_id_org, task_execution_id_node_execution_id_execution_id_project, task_execution_id_node_execution_id_execution_id_domain, task_execution_id_node_execution_id_execution_id_name, task_execution_id_node_execution_id_node_id, task_execution_id_task_id_project, task_execution_id_task_id_domain, task_execution_id_task_id_name, task_execution_id_task_id_version, task_execution_id_retry_attempt, async_req=True) >>> result = thread.get() :param async_req bool - :param str resource_type: Resource type of the metadata to query. One of Task, Workflow or LaunchPlan. +required (required) - :param str org: Optional, org key applied to the resource. (required) - :param str project: Name of the project that contains the identifiers. +required (required) - :param str domain: Name of the domain the identifiers belongs to within the project. (required) - :param int limit: Indicates the number of resources to be returned. - :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. + :param str task_execution_id_node_execution_id_execution_id_org: Optional, org key applied to the resource. (required) + :param str task_execution_id_node_execution_id_execution_id_project: Name of the project the resource belongs to. (required) + :param str task_execution_id_node_execution_id_execution_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str task_execution_id_node_execution_id_execution_id_name: User or system provided value for the resource. (required) + :param str task_execution_id_node_execution_id_node_id: (required) + :param str task_execution_id_task_id_project: Name of the project the resource belongs to. (required) + :param str task_execution_id_task_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str task_execution_id_task_id_name: User provided value for the resource. (required) + :param str task_execution_id_task_id_version: Specific version of the resource. (required) + :param int task_execution_id_retry_attempt: (required) + :param str task_execution_id_task_id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects + :param str task_execution_id_task_id_org: Optional, org key applied to the resource. + :param int limit: Indicates the number of resources to be returned. +required. + :param str token: In the case of multiple pages of results, the, server-provided token can be used to fetch the next page in a query. +optional. + :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. :param str sort_by_key: Indicates an attribute to sort the response values. +required. :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :param str filters: Indicates a list of filters passed as string. +optional. - :return: AdminNamedEntityList + :return: AdminNodeExecutionList If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.list_named_entities2_with_http_info(resource_type, org, project, domain, **kwargs) # noqa: E501 + return self.list_node_executions_for_task2_with_http_info(task_execution_id_node_execution_id_execution_id_org, task_execution_id_node_execution_id_execution_id_project, task_execution_id_node_execution_id_execution_id_domain, task_execution_id_node_execution_id_execution_id_name, task_execution_id_node_execution_id_node_id, task_execution_id_task_id_project, task_execution_id_task_id_domain, task_execution_id_task_id_name, task_execution_id_task_id_version, task_execution_id_retry_attempt, **kwargs) # noqa: E501 else: - (data) = self.list_named_entities2_with_http_info(resource_type, org, project, domain, **kwargs) # noqa: E501 + (data) = self.list_node_executions_for_task2_with_http_info(task_execution_id_node_execution_id_execution_id_org, task_execution_id_node_execution_id_execution_id_project, task_execution_id_node_execution_id_execution_id_domain, task_execution_id_node_execution_id_execution_id_name, task_execution_id_node_execution_id_node_id, task_execution_id_task_id_project, task_execution_id_task_id_domain, task_execution_id_task_id_name, task_execution_id_task_id_version, task_execution_id_retry_attempt, **kwargs) # noqa: E501 return data - def list_named_entities2_with_http_info(self, resource_type, org, project, domain, **kwargs): # noqa: E501 - """Returns a list of :ref:`ref_flyteidl.admin.NamedEntity` objects. # noqa: E501 + def list_node_executions_for_task2_with_http_info(self, task_execution_id_node_execution_id_execution_id_org, task_execution_id_node_execution_id_execution_id_project, task_execution_id_node_execution_id_execution_id_domain, task_execution_id_node_execution_id_execution_id_name, task_execution_id_node_execution_id_node_id, task_execution_id_task_id_project, task_execution_id_task_id_domain, task_execution_id_task_id_name, task_execution_id_task_id_version, task_execution_id_retry_attempt, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution` launched by the reference :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_named_entities2_with_http_info(resource_type, org, project, domain, async_req=True) + >>> thread = api.list_node_executions_for_task2_with_http_info(task_execution_id_node_execution_id_execution_id_org, task_execution_id_node_execution_id_execution_id_project, task_execution_id_node_execution_id_execution_id_domain, task_execution_id_node_execution_id_execution_id_name, task_execution_id_node_execution_id_node_id, task_execution_id_task_id_project, task_execution_id_task_id_domain, task_execution_id_task_id_name, task_execution_id_task_id_version, task_execution_id_retry_attempt, async_req=True) >>> result = thread.get() :param async_req bool - :param str resource_type: Resource type of the metadata to query. One of Task, Workflow or LaunchPlan. +required (required) - :param str org: Optional, org key applied to the resource. (required) - :param str project: Name of the project that contains the identifiers. +required (required) - :param str domain: Name of the domain the identifiers belongs to within the project. (required) - :param int limit: Indicates the number of resources to be returned. - :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. + :param str task_execution_id_node_execution_id_execution_id_org: Optional, org key applied to the resource. (required) + :param str task_execution_id_node_execution_id_execution_id_project: Name of the project the resource belongs to. (required) + :param str task_execution_id_node_execution_id_execution_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str task_execution_id_node_execution_id_execution_id_name: User or system provided value for the resource. (required) + :param str task_execution_id_node_execution_id_node_id: (required) + :param str task_execution_id_task_id_project: Name of the project the resource belongs to. (required) + :param str task_execution_id_task_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str task_execution_id_task_id_name: User provided value for the resource. (required) + :param str task_execution_id_task_id_version: Specific version of the resource. (required) + :param int task_execution_id_retry_attempt: (required) + :param str task_execution_id_task_id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects + :param str task_execution_id_task_id_org: Optional, org key applied to the resource. + :param int limit: Indicates the number of resources to be returned. +required. + :param str token: In the case of multiple pages of results, the, server-provided token can be used to fetch the next page in a query. +optional. + :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. :param str sort_by_key: Indicates an attribute to sort the response values. +required. :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :param str filters: Indicates a list of filters passed as string. +optional. - :return: AdminNamedEntityList + :return: AdminNodeExecutionList If the method is called asynchronously, returns the request thread. """ - all_params = ['resource_type', 'org', 'project', 'domain', 'limit', 'token', 'sort_by_key', 'sort_by_direction', 'filters'] # noqa: E501 + all_params = ['task_execution_id_node_execution_id_execution_id_org', 'task_execution_id_node_execution_id_execution_id_project', 'task_execution_id_node_execution_id_execution_id_domain', 'task_execution_id_node_execution_id_execution_id_name', 'task_execution_id_node_execution_id_node_id', 'task_execution_id_task_id_project', 'task_execution_id_task_id_domain', 'task_execution_id_task_id_name', 'task_execution_id_task_id_version', 'task_execution_id_retry_attempt', 'task_execution_id_task_id_resource_type', 'task_execution_id_task_id_org', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -7749,50 +9354,90 @@ def list_named_entities2_with_http_info(self, resource_type, org, project, domai if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method list_named_entities2" % key + " to method list_node_executions_for_task2" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'resource_type' is set - if ('resource_type' not in params or - params['resource_type'] is None): - raise ValueError("Missing the required parameter `resource_type` when calling `list_named_entities2`") # noqa: E501 - # verify the required parameter 'org' is set - if ('org' not in params or - params['org'] is None): - raise ValueError("Missing the required parameter `org` when calling `list_named_entities2`") # noqa: E501 - # verify the required parameter 'project' is set - if ('project' not in params or - params['project'] is None): - raise ValueError("Missing the required parameter `project` when calling `list_named_entities2`") # noqa: E501 - # verify the required parameter 'domain' is set - if ('domain' not in params or - params['domain'] is None): - raise ValueError("Missing the required parameter `domain` when calling `list_named_entities2`") # noqa: E501 + # verify the required parameter 'task_execution_id_node_execution_id_execution_id_org' is set + if ('task_execution_id_node_execution_id_execution_id_org' not in params or + params['task_execution_id_node_execution_id_execution_id_org'] is None): + raise ValueError("Missing the required parameter `task_execution_id_node_execution_id_execution_id_org` when calling `list_node_executions_for_task2`") # noqa: E501 + # verify the required parameter 'task_execution_id_node_execution_id_execution_id_project' is set + if ('task_execution_id_node_execution_id_execution_id_project' not in params or + params['task_execution_id_node_execution_id_execution_id_project'] is None): + raise ValueError("Missing the required parameter `task_execution_id_node_execution_id_execution_id_project` when calling `list_node_executions_for_task2`") # noqa: E501 + # verify the required parameter 'task_execution_id_node_execution_id_execution_id_domain' is set + if ('task_execution_id_node_execution_id_execution_id_domain' not in params or + params['task_execution_id_node_execution_id_execution_id_domain'] is None): + raise ValueError("Missing the required parameter `task_execution_id_node_execution_id_execution_id_domain` when calling `list_node_executions_for_task2`") # noqa: E501 + # verify the required parameter 'task_execution_id_node_execution_id_execution_id_name' is set + if ('task_execution_id_node_execution_id_execution_id_name' not in params or + params['task_execution_id_node_execution_id_execution_id_name'] is None): + raise ValueError("Missing the required parameter `task_execution_id_node_execution_id_execution_id_name` when calling `list_node_executions_for_task2`") # noqa: E501 + # verify the required parameter 'task_execution_id_node_execution_id_node_id' is set + if ('task_execution_id_node_execution_id_node_id' not in params or + params['task_execution_id_node_execution_id_node_id'] is None): + raise ValueError("Missing the required parameter `task_execution_id_node_execution_id_node_id` when calling `list_node_executions_for_task2`") # noqa: E501 + # verify the required parameter 'task_execution_id_task_id_project' is set + if ('task_execution_id_task_id_project' not in params or + params['task_execution_id_task_id_project'] is None): + raise ValueError("Missing the required parameter `task_execution_id_task_id_project` when calling `list_node_executions_for_task2`") # noqa: E501 + # verify the required parameter 'task_execution_id_task_id_domain' is set + if ('task_execution_id_task_id_domain' not in params or + params['task_execution_id_task_id_domain'] is None): + raise ValueError("Missing the required parameter `task_execution_id_task_id_domain` when calling `list_node_executions_for_task2`") # noqa: E501 + # verify the required parameter 'task_execution_id_task_id_name' is set + if ('task_execution_id_task_id_name' not in params or + params['task_execution_id_task_id_name'] is None): + raise ValueError("Missing the required parameter `task_execution_id_task_id_name` when calling `list_node_executions_for_task2`") # noqa: E501 + # verify the required parameter 'task_execution_id_task_id_version' is set + if ('task_execution_id_task_id_version' not in params or + params['task_execution_id_task_id_version'] is None): + raise ValueError("Missing the required parameter `task_execution_id_task_id_version` when calling `list_node_executions_for_task2`") # noqa: E501 + # verify the required parameter 'task_execution_id_retry_attempt' is set + if ('task_execution_id_retry_attempt' not in params or + params['task_execution_id_retry_attempt'] is None): + raise ValueError("Missing the required parameter `task_execution_id_retry_attempt` when calling `list_node_executions_for_task2`") # noqa: E501 collection_formats = {} path_params = {} - if 'resource_type' in params: - path_params['resource_type'] = params['resource_type'] # noqa: E501 - if 'org' in params: - path_params['org'] = params['org'] # noqa: E501 - if 'project' in params: - path_params['project'] = params['project'] # noqa: E501 - if 'domain' in params: - path_params['domain'] = params['domain'] # noqa: E501 + if 'task_execution_id_node_execution_id_execution_id_org' in params: + path_params['task_execution_id.node_execution_id.execution_id.org'] = params['task_execution_id_node_execution_id_execution_id_org'] # noqa: E501 + if 'task_execution_id_node_execution_id_execution_id_project' in params: + path_params['task_execution_id.node_execution_id.execution_id.project'] = params['task_execution_id_node_execution_id_execution_id_project'] # noqa: E501 + if 'task_execution_id_node_execution_id_execution_id_domain' in params: + path_params['task_execution_id.node_execution_id.execution_id.domain'] = params['task_execution_id_node_execution_id_execution_id_domain'] # noqa: E501 + if 'task_execution_id_node_execution_id_execution_id_name' in params: + path_params['task_execution_id.node_execution_id.execution_id.name'] = params['task_execution_id_node_execution_id_execution_id_name'] # noqa: E501 + if 'task_execution_id_node_execution_id_node_id' in params: + path_params['task_execution_id.node_execution_id.node_id'] = params['task_execution_id_node_execution_id_node_id'] # noqa: E501 + if 'task_execution_id_task_id_project' in params: + path_params['task_execution_id.task_id.project'] = params['task_execution_id_task_id_project'] # noqa: E501 + if 'task_execution_id_task_id_domain' in params: + path_params['task_execution_id.task_id.domain'] = params['task_execution_id_task_id_domain'] # noqa: E501 + if 'task_execution_id_task_id_name' in params: + path_params['task_execution_id.task_id.name'] = params['task_execution_id_task_id_name'] # noqa: E501 + if 'task_execution_id_task_id_version' in params: + path_params['task_execution_id.task_id.version'] = params['task_execution_id_task_id_version'] # noqa: E501 + if 'task_execution_id_retry_attempt' in params: + path_params['task_execution_id.retry_attempt'] = params['task_execution_id_retry_attempt'] # noqa: E501 query_params = [] + if 'task_execution_id_task_id_resource_type' in params: + query_params.append(('task_execution_id.task_id.resource_type', params['task_execution_id_task_id_resource_type'])) # noqa: E501 + if 'task_execution_id_task_id_org' in params: + query_params.append(('task_execution_id.task_id.org', params['task_execution_id_task_id_org'])) # noqa: E501 if 'limit' in params: query_params.append(('limit', params['limit'])) # noqa: E501 if 'token' in params: query_params.append(('token', params['token'])) # noqa: E501 + if 'filters' in params: + query_params.append(('filters', params['filters'])) # noqa: E501 if 'sort_by_key' in params: query_params.append(('sort_by.key', params['sort_by_key'])) # noqa: E501 if 'sort_by_direction' in params: query_params.append(('sort_by.direction', params['sort_by_direction'])) # noqa: E501 - if 'filters' in params: - query_params.append(('filters', params['filters'])) # noqa: E501 header_params = {} @@ -7812,14 +9457,14 @@ def list_named_entities2_with_http_info(self, resource_type, org, project, domai auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/named_entities/{resource_type}/org/{org}/{project}/{domain}', 'GET', + '/api/v1/children/task_executions/org/{task_execution_id.node_execution_id.execution_id.org}/{task_execution_id.node_execution_id.execution_id.project}/{task_execution_id.node_execution_id.execution_id.domain}/{task_execution_id.node_execution_id.execution_id.name}/{task_execution_id.node_execution_id.node_id}/{task_execution_id.task_id.project}/{task_execution_id.task_id.domain}/{task_execution_id.task_id.name}/{task_execution_id.task_id.version}/{task_execution_id.retry_attempt}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminNamedEntityList', # noqa: E501 + response_type='AdminNodeExecutionList', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -7827,61 +9472,53 @@ def list_named_entities2_with_http_info(self, resource_type, org, project, domai _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def list_node_executions(self, workflow_execution_id_project, workflow_execution_id_domain, workflow_execution_id_name, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution`. # noqa: E501 + def list_projects(self, **kwargs): # noqa: E501 + """Fetches a list of :ref:`ref_flyteidl.admin.Project` # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_node_executions(workflow_execution_id_project, workflow_execution_id_domain, workflow_execution_id_name, async_req=True) + >>> thread = api.list_projects(async_req=True) >>> result = thread.get() :param async_req bool - :param str workflow_execution_id_project: Name of the project the resource belongs to. (required) - :param str workflow_execution_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str workflow_execution_id_name: User or system provided value for the resource. (required) - :param str workflow_execution_id_org: Optional, org key applied to the resource. - :param int limit: Indicates the number of resources to be returned. +required. - :param str token: + :param int limit: Indicates the number of projects to be returned. +required. + :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. :param str sort_by_key: Indicates an attribute to sort the response values. +required. :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :param str unique_parent_id: Unique identifier of the parent node in the execution +optional. - :return: AdminNodeExecutionList + :param str org: Optional, org filter applied to list project requests. + :return: AdminProjects If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.list_node_executions_with_http_info(workflow_execution_id_project, workflow_execution_id_domain, workflow_execution_id_name, **kwargs) # noqa: E501 + return self.list_projects_with_http_info(**kwargs) # noqa: E501 else: - (data) = self.list_node_executions_with_http_info(workflow_execution_id_project, workflow_execution_id_domain, workflow_execution_id_name, **kwargs) # noqa: E501 + (data) = self.list_projects_with_http_info(**kwargs) # noqa: E501 return data - def list_node_executions_with_http_info(self, workflow_execution_id_project, workflow_execution_id_domain, workflow_execution_id_name, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution`. # noqa: E501 + def list_projects_with_http_info(self, **kwargs): # noqa: E501 + """Fetches a list of :ref:`ref_flyteidl.admin.Project` # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_node_executions_with_http_info(workflow_execution_id_project, workflow_execution_id_domain, workflow_execution_id_name, async_req=True) + >>> thread = api.list_projects_with_http_info(async_req=True) >>> result = thread.get() :param async_req bool - :param str workflow_execution_id_project: Name of the project the resource belongs to. (required) - :param str workflow_execution_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str workflow_execution_id_name: User or system provided value for the resource. (required) - :param str workflow_execution_id_org: Optional, org key applied to the resource. - :param int limit: Indicates the number of resources to be returned. +required. - :param str token: + :param int limit: Indicates the number of projects to be returned. +required. + :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. :param str sort_by_key: Indicates an attribute to sort the response values. +required. :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :param str unique_parent_id: Unique identifier of the parent node in the execution +optional. - :return: AdminNodeExecutionList + :param str org: Optional, org filter applied to list project requests. + :return: AdminProjects If the method is called asynchronously, returns the request thread. """ - all_params = ['workflow_execution_id_project', 'workflow_execution_id_domain', 'workflow_execution_id_name', 'workflow_execution_id_org', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction', 'unique_parent_id'] # noqa: E501 + all_params = ['limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction', 'org'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -7892,36 +9529,16 @@ def list_node_executions_with_http_info(self, workflow_execution_id_project, wor if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method list_node_executions" % key + " to method list_projects" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'workflow_execution_id_project' is set - if ('workflow_execution_id_project' not in params or - params['workflow_execution_id_project'] is None): - raise ValueError("Missing the required parameter `workflow_execution_id_project` when calling `list_node_executions`") # noqa: E501 - # verify the required parameter 'workflow_execution_id_domain' is set - if ('workflow_execution_id_domain' not in params or - params['workflow_execution_id_domain'] is None): - raise ValueError("Missing the required parameter `workflow_execution_id_domain` when calling `list_node_executions`") # noqa: E501 - # verify the required parameter 'workflow_execution_id_name' is set - if ('workflow_execution_id_name' not in params or - params['workflow_execution_id_name'] is None): - raise ValueError("Missing the required parameter `workflow_execution_id_name` when calling `list_node_executions`") # noqa: E501 collection_formats = {} path_params = {} - if 'workflow_execution_id_project' in params: - path_params['workflow_execution_id.project'] = params['workflow_execution_id_project'] # noqa: E501 - if 'workflow_execution_id_domain' in params: - path_params['workflow_execution_id.domain'] = params['workflow_execution_id_domain'] # noqa: E501 - if 'workflow_execution_id_name' in params: - path_params['workflow_execution_id.name'] = params['workflow_execution_id_name'] # noqa: E501 query_params = [] - if 'workflow_execution_id_org' in params: - query_params.append(('workflow_execution_id.org', params['workflow_execution_id_org'])) # noqa: E501 if 'limit' in params: query_params.append(('limit', params['limit'])) # noqa: E501 if 'token' in params: @@ -7932,8 +9549,8 @@ def list_node_executions_with_http_info(self, workflow_execution_id_project, wor query_params.append(('sort_by.key', params['sort_by_key'])) # noqa: E501 if 'sort_by_direction' in params: query_params.append(('sort_by.direction', params['sort_by_direction'])) # noqa: E501 - if 'unique_parent_id' in params: - query_params.append(('unique_parent_id', params['unique_parent_id'])) # noqa: E501 + if 'org' in params: + query_params.append(('org', params['org'])) # noqa: E501 header_params = {} @@ -7953,14 +9570,14 @@ def list_node_executions_with_http_info(self, workflow_execution_id_project, wor auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/node_executions/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name}', 'GET', + '/api/v1/projects', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminNodeExecutionList', # noqa: E501 + response_type='AdminProjects', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -7968,61 +9585,53 @@ def list_node_executions_with_http_info(self, workflow_execution_id_project, wor _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def list_node_executions2(self, workflow_execution_id_org, workflow_execution_id_project, workflow_execution_id_domain, workflow_execution_id_name, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution`. # noqa: E501 + def list_projects2(self, org, **kwargs): # noqa: E501 + """Fetches a list of :ref:`ref_flyteidl.admin.Project` # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_node_executions2(workflow_execution_id_org, workflow_execution_id_project, workflow_execution_id_domain, workflow_execution_id_name, async_req=True) + >>> thread = api.list_projects2(org, async_req=True) >>> result = thread.get() :param async_req bool - :param str workflow_execution_id_org: Optional, org key applied to the resource. (required) - :param str workflow_execution_id_project: Name of the project the resource belongs to. (required) - :param str workflow_execution_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str workflow_execution_id_name: User or system provided value for the resource. (required) - :param int limit: Indicates the number of resources to be returned. +required. - :param str token: + :param str org: Optional, org filter applied to list project requests. (required) + :param int limit: Indicates the number of projects to be returned. +required. + :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. :param str sort_by_key: Indicates an attribute to sort the response values. +required. :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :param str unique_parent_id: Unique identifier of the parent node in the execution +optional. - :return: AdminNodeExecutionList + :return: AdminProjects If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.list_node_executions2_with_http_info(workflow_execution_id_org, workflow_execution_id_project, workflow_execution_id_domain, workflow_execution_id_name, **kwargs) # noqa: E501 + return self.list_projects2_with_http_info(org, **kwargs) # noqa: E501 else: - (data) = self.list_node_executions2_with_http_info(workflow_execution_id_org, workflow_execution_id_project, workflow_execution_id_domain, workflow_execution_id_name, **kwargs) # noqa: E501 + (data) = self.list_projects2_with_http_info(org, **kwargs) # noqa: E501 return data - def list_node_executions2_with_http_info(self, workflow_execution_id_org, workflow_execution_id_project, workflow_execution_id_domain, workflow_execution_id_name, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution`. # noqa: E501 + def list_projects2_with_http_info(self, org, **kwargs): # noqa: E501 + """Fetches a list of :ref:`ref_flyteidl.admin.Project` # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_node_executions2_with_http_info(workflow_execution_id_org, workflow_execution_id_project, workflow_execution_id_domain, workflow_execution_id_name, async_req=True) + >>> thread = api.list_projects2_with_http_info(org, async_req=True) >>> result = thread.get() :param async_req bool - :param str workflow_execution_id_org: Optional, org key applied to the resource. (required) - :param str workflow_execution_id_project: Name of the project the resource belongs to. (required) - :param str workflow_execution_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str workflow_execution_id_name: User or system provided value for the resource. (required) - :param int limit: Indicates the number of resources to be returned. +required. - :param str token: + :param str org: Optional, org filter applied to list project requests. (required) + :param int limit: Indicates the number of projects to be returned. +required. + :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. :param str sort_by_key: Indicates an attribute to sort the response values. +required. :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :param str unique_parent_id: Unique identifier of the parent node in the execution +optional. - :return: AdminNodeExecutionList + :return: AdminProjects If the method is called asynchronously, returns the request thread. """ - all_params = ['workflow_execution_id_org', 'workflow_execution_id_project', 'workflow_execution_id_domain', 'workflow_execution_id_name', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction', 'unique_parent_id'] # noqa: E501 + all_params = ['org', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -8033,38 +9642,20 @@ def list_node_executions2_with_http_info(self, workflow_execution_id_org, workfl if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method list_node_executions2" % key + " to method list_projects2" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'workflow_execution_id_org' is set - if ('workflow_execution_id_org' not in params or - params['workflow_execution_id_org'] is None): - raise ValueError("Missing the required parameter `workflow_execution_id_org` when calling `list_node_executions2`") # noqa: E501 - # verify the required parameter 'workflow_execution_id_project' is set - if ('workflow_execution_id_project' not in params or - params['workflow_execution_id_project'] is None): - raise ValueError("Missing the required parameter `workflow_execution_id_project` when calling `list_node_executions2`") # noqa: E501 - # verify the required parameter 'workflow_execution_id_domain' is set - if ('workflow_execution_id_domain' not in params or - params['workflow_execution_id_domain'] is None): - raise ValueError("Missing the required parameter `workflow_execution_id_domain` when calling `list_node_executions2`") # noqa: E501 - # verify the required parameter 'workflow_execution_id_name' is set - if ('workflow_execution_id_name' not in params or - params['workflow_execution_id_name'] is None): - raise ValueError("Missing the required parameter `workflow_execution_id_name` when calling `list_node_executions2`") # noqa: E501 + # verify the required parameter 'org' is set + if ('org' not in params or + params['org'] is None): + raise ValueError("Missing the required parameter `org` when calling `list_projects2`") # noqa: E501 collection_formats = {} path_params = {} - if 'workflow_execution_id_org' in params: - path_params['workflow_execution_id.org'] = params['workflow_execution_id_org'] # noqa: E501 - if 'workflow_execution_id_project' in params: - path_params['workflow_execution_id.project'] = params['workflow_execution_id_project'] # noqa: E501 - if 'workflow_execution_id_domain' in params: - path_params['workflow_execution_id.domain'] = params['workflow_execution_id_domain'] # noqa: E501 - if 'workflow_execution_id_name' in params: - path_params['workflow_execution_id.name'] = params['workflow_execution_id_name'] # noqa: E501 + if 'org' in params: + path_params['org'] = params['org'] # noqa: E501 query_params = [] if 'limit' in params: @@ -8077,8 +9668,6 @@ def list_node_executions2_with_http_info(self, workflow_execution_id_org, workfl query_params.append(('sort_by.key', params['sort_by_key'])) # noqa: E501 if 'sort_by_direction' in params: query_params.append(('sort_by.direction', params['sort_by_direction'])) # noqa: E501 - if 'unique_parent_id' in params: - query_params.append(('unique_parent_id', params['unique_parent_id'])) # noqa: E501 header_params = {} @@ -8098,14 +9687,14 @@ def list_node_executions2_with_http_info(self, workflow_execution_id_org, workfl auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/node_executions/org/{workflow_execution_id.org}/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name}', 'GET', + '/api/v1/projects/org/{org}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminNodeExecutionList', # noqa: E501 + response_type='AdminProjects', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -8113,75 +9702,61 @@ def list_node_executions2_with_http_info(self, workflow_execution_id_org, workfl _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def list_node_executions_for_task(self, task_execution_id_node_execution_id_execution_id_project, task_execution_id_node_execution_id_execution_id_domain, task_execution_id_node_execution_id_execution_id_name, task_execution_id_node_execution_id_node_id, task_execution_id_task_id_project, task_execution_id_task_id_domain, task_execution_id_task_id_name, task_execution_id_task_id_version, task_execution_id_retry_attempt, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution` launched by the reference :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 + def list_task_executions(self, node_execution_id_execution_id_project, node_execution_id_execution_id_domain, node_execution_id_execution_id_name, node_execution_id_node_id, **kwargs): # noqa: E501 + """Fetches a list of :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_node_executions_for_task(task_execution_id_node_execution_id_execution_id_project, task_execution_id_node_execution_id_execution_id_domain, task_execution_id_node_execution_id_execution_id_name, task_execution_id_node_execution_id_node_id, task_execution_id_task_id_project, task_execution_id_task_id_domain, task_execution_id_task_id_name, task_execution_id_task_id_version, task_execution_id_retry_attempt, async_req=True) + >>> thread = api.list_task_executions(node_execution_id_execution_id_project, node_execution_id_execution_id_domain, node_execution_id_execution_id_name, node_execution_id_node_id, async_req=True) >>> result = thread.get() :param async_req bool - :param str task_execution_id_node_execution_id_execution_id_project: Name of the project the resource belongs to. (required) - :param str task_execution_id_node_execution_id_execution_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str task_execution_id_node_execution_id_execution_id_name: User or system provided value for the resource. (required) - :param str task_execution_id_node_execution_id_node_id: (required) - :param str task_execution_id_task_id_project: Name of the project the resource belongs to. (required) - :param str task_execution_id_task_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str task_execution_id_task_id_name: User provided value for the resource. (required) - :param str task_execution_id_task_id_version: Specific version of the resource. (required) - :param int task_execution_id_retry_attempt: (required) - :param str task_execution_id_task_id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects - :param str task_execution_id_task_id_org: Optional, org key applied to the resource. - :param str task_execution_id_node_execution_id_execution_id_org: Optional, org key applied to the resource. + :param str node_execution_id_execution_id_project: Name of the project the resource belongs to. (required) + :param str node_execution_id_execution_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str node_execution_id_execution_id_name: User or system provided value for the resource. (required) + :param str node_execution_id_node_id: (required) + :param str node_execution_id_execution_id_org: Optional, org key applied to the resource. :param int limit: Indicates the number of resources to be returned. +required. - :param str token: In the case of multiple pages of results, the, server-provided token can be used to fetch the next page in a query. +optional. + :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. :param str sort_by_key: Indicates an attribute to sort the response values. +required. :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :return: AdminNodeExecutionList + :return: AdminTaskExecutionList If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.list_node_executions_for_task_with_http_info(task_execution_id_node_execution_id_execution_id_project, task_execution_id_node_execution_id_execution_id_domain, task_execution_id_node_execution_id_execution_id_name, task_execution_id_node_execution_id_node_id, task_execution_id_task_id_project, task_execution_id_task_id_domain, task_execution_id_task_id_name, task_execution_id_task_id_version, task_execution_id_retry_attempt, **kwargs) # noqa: E501 + return self.list_task_executions_with_http_info(node_execution_id_execution_id_project, node_execution_id_execution_id_domain, node_execution_id_execution_id_name, node_execution_id_node_id, **kwargs) # noqa: E501 else: - (data) = self.list_node_executions_for_task_with_http_info(task_execution_id_node_execution_id_execution_id_project, task_execution_id_node_execution_id_execution_id_domain, task_execution_id_node_execution_id_execution_id_name, task_execution_id_node_execution_id_node_id, task_execution_id_task_id_project, task_execution_id_task_id_domain, task_execution_id_task_id_name, task_execution_id_task_id_version, task_execution_id_retry_attempt, **kwargs) # noqa: E501 + (data) = self.list_task_executions_with_http_info(node_execution_id_execution_id_project, node_execution_id_execution_id_domain, node_execution_id_execution_id_name, node_execution_id_node_id, **kwargs) # noqa: E501 return data - def list_node_executions_for_task_with_http_info(self, task_execution_id_node_execution_id_execution_id_project, task_execution_id_node_execution_id_execution_id_domain, task_execution_id_node_execution_id_execution_id_name, task_execution_id_node_execution_id_node_id, task_execution_id_task_id_project, task_execution_id_task_id_domain, task_execution_id_task_id_name, task_execution_id_task_id_version, task_execution_id_retry_attempt, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution` launched by the reference :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 + def list_task_executions_with_http_info(self, node_execution_id_execution_id_project, node_execution_id_execution_id_domain, node_execution_id_execution_id_name, node_execution_id_node_id, **kwargs): # noqa: E501 + """Fetches a list of :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_node_executions_for_task_with_http_info(task_execution_id_node_execution_id_execution_id_project, task_execution_id_node_execution_id_execution_id_domain, task_execution_id_node_execution_id_execution_id_name, task_execution_id_node_execution_id_node_id, task_execution_id_task_id_project, task_execution_id_task_id_domain, task_execution_id_task_id_name, task_execution_id_task_id_version, task_execution_id_retry_attempt, async_req=True) + >>> thread = api.list_task_executions_with_http_info(node_execution_id_execution_id_project, node_execution_id_execution_id_domain, node_execution_id_execution_id_name, node_execution_id_node_id, async_req=True) >>> result = thread.get() :param async_req bool - :param str task_execution_id_node_execution_id_execution_id_project: Name of the project the resource belongs to. (required) - :param str task_execution_id_node_execution_id_execution_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str task_execution_id_node_execution_id_execution_id_name: User or system provided value for the resource. (required) - :param str task_execution_id_node_execution_id_node_id: (required) - :param str task_execution_id_task_id_project: Name of the project the resource belongs to. (required) - :param str task_execution_id_task_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str task_execution_id_task_id_name: User provided value for the resource. (required) - :param str task_execution_id_task_id_version: Specific version of the resource. (required) - :param int task_execution_id_retry_attempt: (required) - :param str task_execution_id_task_id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects - :param str task_execution_id_task_id_org: Optional, org key applied to the resource. - :param str task_execution_id_node_execution_id_execution_id_org: Optional, org key applied to the resource. + :param str node_execution_id_execution_id_project: Name of the project the resource belongs to. (required) + :param str node_execution_id_execution_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str node_execution_id_execution_id_name: User or system provided value for the resource. (required) + :param str node_execution_id_node_id: (required) + :param str node_execution_id_execution_id_org: Optional, org key applied to the resource. :param int limit: Indicates the number of resources to be returned. +required. - :param str token: In the case of multiple pages of results, the, server-provided token can be used to fetch the next page in a query. +optional. + :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. :param str sort_by_key: Indicates an attribute to sort the response values. +required. :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :return: AdminNodeExecutionList + :return: AdminTaskExecutionList If the method is called asynchronously, returns the request thread. """ - all_params = ['task_execution_id_node_execution_id_execution_id_project', 'task_execution_id_node_execution_id_execution_id_domain', 'task_execution_id_node_execution_id_execution_id_name', 'task_execution_id_node_execution_id_node_id', 'task_execution_id_task_id_project', 'task_execution_id_task_id_domain', 'task_execution_id_task_id_name', 'task_execution_id_task_id_version', 'task_execution_id_retry_attempt', 'task_execution_id_task_id_resource_type', 'task_execution_id_task_id_org', 'task_execution_id_node_execution_id_execution_id_org', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # noqa: E501 + all_params = ['node_execution_id_execution_id_project', 'node_execution_id_execution_id_domain', 'node_execution_id_execution_id_name', 'node_execution_id_node_id', 'node_execution_id_execution_id_org', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -8192,76 +9767,42 @@ def list_node_executions_for_task_with_http_info(self, task_execution_id_node_ex if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method list_node_executions_for_task" % key + " to method list_task_executions" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'task_execution_id_node_execution_id_execution_id_project' is set - if ('task_execution_id_node_execution_id_execution_id_project' not in params or - params['task_execution_id_node_execution_id_execution_id_project'] is None): - raise ValueError("Missing the required parameter `task_execution_id_node_execution_id_execution_id_project` when calling `list_node_executions_for_task`") # noqa: E501 - # verify the required parameter 'task_execution_id_node_execution_id_execution_id_domain' is set - if ('task_execution_id_node_execution_id_execution_id_domain' not in params or - params['task_execution_id_node_execution_id_execution_id_domain'] is None): - raise ValueError("Missing the required parameter `task_execution_id_node_execution_id_execution_id_domain` when calling `list_node_executions_for_task`") # noqa: E501 - # verify the required parameter 'task_execution_id_node_execution_id_execution_id_name' is set - if ('task_execution_id_node_execution_id_execution_id_name' not in params or - params['task_execution_id_node_execution_id_execution_id_name'] is None): - raise ValueError("Missing the required parameter `task_execution_id_node_execution_id_execution_id_name` when calling `list_node_executions_for_task`") # noqa: E501 - # verify the required parameter 'task_execution_id_node_execution_id_node_id' is set - if ('task_execution_id_node_execution_id_node_id' not in params or - params['task_execution_id_node_execution_id_node_id'] is None): - raise ValueError("Missing the required parameter `task_execution_id_node_execution_id_node_id` when calling `list_node_executions_for_task`") # noqa: E501 - # verify the required parameter 'task_execution_id_task_id_project' is set - if ('task_execution_id_task_id_project' not in params or - params['task_execution_id_task_id_project'] is None): - raise ValueError("Missing the required parameter `task_execution_id_task_id_project` when calling `list_node_executions_for_task`") # noqa: E501 - # verify the required parameter 'task_execution_id_task_id_domain' is set - if ('task_execution_id_task_id_domain' not in params or - params['task_execution_id_task_id_domain'] is None): - raise ValueError("Missing the required parameter `task_execution_id_task_id_domain` when calling `list_node_executions_for_task`") # noqa: E501 - # verify the required parameter 'task_execution_id_task_id_name' is set - if ('task_execution_id_task_id_name' not in params or - params['task_execution_id_task_id_name'] is None): - raise ValueError("Missing the required parameter `task_execution_id_task_id_name` when calling `list_node_executions_for_task`") # noqa: E501 - # verify the required parameter 'task_execution_id_task_id_version' is set - if ('task_execution_id_task_id_version' not in params or - params['task_execution_id_task_id_version'] is None): - raise ValueError("Missing the required parameter `task_execution_id_task_id_version` when calling `list_node_executions_for_task`") # noqa: E501 - # verify the required parameter 'task_execution_id_retry_attempt' is set - if ('task_execution_id_retry_attempt' not in params or - params['task_execution_id_retry_attempt'] is None): - raise ValueError("Missing the required parameter `task_execution_id_retry_attempt` when calling `list_node_executions_for_task`") # noqa: E501 + # verify the required parameter 'node_execution_id_execution_id_project' is set + if ('node_execution_id_execution_id_project' not in params or + params['node_execution_id_execution_id_project'] is None): + raise ValueError("Missing the required parameter `node_execution_id_execution_id_project` when calling `list_task_executions`") # noqa: E501 + # verify the required parameter 'node_execution_id_execution_id_domain' is set + if ('node_execution_id_execution_id_domain' not in params or + params['node_execution_id_execution_id_domain'] is None): + raise ValueError("Missing the required parameter `node_execution_id_execution_id_domain` when calling `list_task_executions`") # noqa: E501 + # verify the required parameter 'node_execution_id_execution_id_name' is set + if ('node_execution_id_execution_id_name' not in params or + params['node_execution_id_execution_id_name'] is None): + raise ValueError("Missing the required parameter `node_execution_id_execution_id_name` when calling `list_task_executions`") # noqa: E501 + # verify the required parameter 'node_execution_id_node_id' is set + if ('node_execution_id_node_id' not in params or + params['node_execution_id_node_id'] is None): + raise ValueError("Missing the required parameter `node_execution_id_node_id` when calling `list_task_executions`") # noqa: E501 collection_formats = {} path_params = {} - if 'task_execution_id_node_execution_id_execution_id_project' in params: - path_params['task_execution_id.node_execution_id.execution_id.project'] = params['task_execution_id_node_execution_id_execution_id_project'] # noqa: E501 - if 'task_execution_id_node_execution_id_execution_id_domain' in params: - path_params['task_execution_id.node_execution_id.execution_id.domain'] = params['task_execution_id_node_execution_id_execution_id_domain'] # noqa: E501 - if 'task_execution_id_node_execution_id_execution_id_name' in params: - path_params['task_execution_id.node_execution_id.execution_id.name'] = params['task_execution_id_node_execution_id_execution_id_name'] # noqa: E501 - if 'task_execution_id_node_execution_id_node_id' in params: - path_params['task_execution_id.node_execution_id.node_id'] = params['task_execution_id_node_execution_id_node_id'] # noqa: E501 - if 'task_execution_id_task_id_project' in params: - path_params['task_execution_id.task_id.project'] = params['task_execution_id_task_id_project'] # noqa: E501 - if 'task_execution_id_task_id_domain' in params: - path_params['task_execution_id.task_id.domain'] = params['task_execution_id_task_id_domain'] # noqa: E501 - if 'task_execution_id_task_id_name' in params: - path_params['task_execution_id.task_id.name'] = params['task_execution_id_task_id_name'] # noqa: E501 - if 'task_execution_id_task_id_version' in params: - path_params['task_execution_id.task_id.version'] = params['task_execution_id_task_id_version'] # noqa: E501 - if 'task_execution_id_retry_attempt' in params: - path_params['task_execution_id.retry_attempt'] = params['task_execution_id_retry_attempt'] # noqa: E501 + if 'node_execution_id_execution_id_project' in params: + path_params['node_execution_id.execution_id.project'] = params['node_execution_id_execution_id_project'] # noqa: E501 + if 'node_execution_id_execution_id_domain' in params: + path_params['node_execution_id.execution_id.domain'] = params['node_execution_id_execution_id_domain'] # noqa: E501 + if 'node_execution_id_execution_id_name' in params: + path_params['node_execution_id.execution_id.name'] = params['node_execution_id_execution_id_name'] # noqa: E501 + if 'node_execution_id_node_id' in params: + path_params['node_execution_id.node_id'] = params['node_execution_id_node_id'] # noqa: E501 query_params = [] - if 'task_execution_id_task_id_resource_type' in params: - query_params.append(('task_execution_id.task_id.resource_type', params['task_execution_id_task_id_resource_type'])) # noqa: E501 - if 'task_execution_id_task_id_org' in params: - query_params.append(('task_execution_id.task_id.org', params['task_execution_id_task_id_org'])) # noqa: E501 - if 'task_execution_id_node_execution_id_execution_id_org' in params: - query_params.append(('task_execution_id.node_execution_id.execution_id.org', params['task_execution_id_node_execution_id_execution_id_org'])) # noqa: E501 + if 'node_execution_id_execution_id_org' in params: + query_params.append(('node_execution_id.execution_id.org', params['node_execution_id_execution_id_org'])) # noqa: E501 if 'limit' in params: query_params.append(('limit', params['limit'])) # noqa: E501 if 'token' in params: @@ -8291,14 +9832,14 @@ def list_node_executions_for_task_with_http_info(self, task_execution_id_node_ex auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/children/task_executions/{task_execution_id.node_execution_id.execution_id.project}/{task_execution_id.node_execution_id.execution_id.domain}/{task_execution_id.node_execution_id.execution_id.name}/{task_execution_id.node_execution_id.node_id}/{task_execution_id.task_id.project}/{task_execution_id.task_id.domain}/{task_execution_id.task_id.name}/{task_execution_id.task_id.version}/{task_execution_id.retry_attempt}', 'GET', + '/api/v1/task_executions/{node_execution_id.execution_id.project}/{node_execution_id.execution_id.domain}/{node_execution_id.execution_id.name}/{node_execution_id.node_id}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminNodeExecutionList', # noqa: E501 + response_type='AdminTaskExecutionList', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -8306,75 +9847,61 @@ def list_node_executions_for_task_with_http_info(self, task_execution_id_node_ex _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def list_node_executions_for_task2(self, task_execution_id_node_execution_id_execution_id_org, task_execution_id_node_execution_id_execution_id_project, task_execution_id_node_execution_id_execution_id_domain, task_execution_id_node_execution_id_execution_id_name, task_execution_id_node_execution_id_node_id, task_execution_id_task_id_project, task_execution_id_task_id_domain, task_execution_id_task_id_name, task_execution_id_task_id_version, task_execution_id_retry_attempt, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution` launched by the reference :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 + def list_task_executions2(self, node_execution_id_execution_id_org, node_execution_id_execution_id_project, node_execution_id_execution_id_domain, node_execution_id_execution_id_name, node_execution_id_node_id, **kwargs): # noqa: E501 + """Fetches a list of :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_node_executions_for_task2(task_execution_id_node_execution_id_execution_id_org, task_execution_id_node_execution_id_execution_id_project, task_execution_id_node_execution_id_execution_id_domain, task_execution_id_node_execution_id_execution_id_name, task_execution_id_node_execution_id_node_id, task_execution_id_task_id_project, task_execution_id_task_id_domain, task_execution_id_task_id_name, task_execution_id_task_id_version, task_execution_id_retry_attempt, async_req=True) + >>> thread = api.list_task_executions2(node_execution_id_execution_id_org, node_execution_id_execution_id_project, node_execution_id_execution_id_domain, node_execution_id_execution_id_name, node_execution_id_node_id, async_req=True) >>> result = thread.get() :param async_req bool - :param str task_execution_id_node_execution_id_execution_id_org: Optional, org key applied to the resource. (required) - :param str task_execution_id_node_execution_id_execution_id_project: Name of the project the resource belongs to. (required) - :param str task_execution_id_node_execution_id_execution_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str task_execution_id_node_execution_id_execution_id_name: User or system provided value for the resource. (required) - :param str task_execution_id_node_execution_id_node_id: (required) - :param str task_execution_id_task_id_project: Name of the project the resource belongs to. (required) - :param str task_execution_id_task_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str task_execution_id_task_id_name: User provided value for the resource. (required) - :param str task_execution_id_task_id_version: Specific version of the resource. (required) - :param int task_execution_id_retry_attempt: (required) - :param str task_execution_id_task_id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects - :param str task_execution_id_task_id_org: Optional, org key applied to the resource. + :param str node_execution_id_execution_id_org: Optional, org key applied to the resource. (required) + :param str node_execution_id_execution_id_project: Name of the project the resource belongs to. (required) + :param str node_execution_id_execution_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str node_execution_id_execution_id_name: User or system provided value for the resource. (required) + :param str node_execution_id_node_id: (required) :param int limit: Indicates the number of resources to be returned. +required. - :param str token: In the case of multiple pages of results, the, server-provided token can be used to fetch the next page in a query. +optional. + :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. :param str sort_by_key: Indicates an attribute to sort the response values. +required. :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :return: AdminNodeExecutionList + :return: AdminTaskExecutionList If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.list_node_executions_for_task2_with_http_info(task_execution_id_node_execution_id_execution_id_org, task_execution_id_node_execution_id_execution_id_project, task_execution_id_node_execution_id_execution_id_domain, task_execution_id_node_execution_id_execution_id_name, task_execution_id_node_execution_id_node_id, task_execution_id_task_id_project, task_execution_id_task_id_domain, task_execution_id_task_id_name, task_execution_id_task_id_version, task_execution_id_retry_attempt, **kwargs) # noqa: E501 + return self.list_task_executions2_with_http_info(node_execution_id_execution_id_org, node_execution_id_execution_id_project, node_execution_id_execution_id_domain, node_execution_id_execution_id_name, node_execution_id_node_id, **kwargs) # noqa: E501 else: - (data) = self.list_node_executions_for_task2_with_http_info(task_execution_id_node_execution_id_execution_id_org, task_execution_id_node_execution_id_execution_id_project, task_execution_id_node_execution_id_execution_id_domain, task_execution_id_node_execution_id_execution_id_name, task_execution_id_node_execution_id_node_id, task_execution_id_task_id_project, task_execution_id_task_id_domain, task_execution_id_task_id_name, task_execution_id_task_id_version, task_execution_id_retry_attempt, **kwargs) # noqa: E501 + (data) = self.list_task_executions2_with_http_info(node_execution_id_execution_id_org, node_execution_id_execution_id_project, node_execution_id_execution_id_domain, node_execution_id_execution_id_name, node_execution_id_node_id, **kwargs) # noqa: E501 return data - def list_node_executions_for_task2_with_http_info(self, task_execution_id_node_execution_id_execution_id_org, task_execution_id_node_execution_id_execution_id_project, task_execution_id_node_execution_id_execution_id_domain, task_execution_id_node_execution_id_execution_id_name, task_execution_id_node_execution_id_node_id, task_execution_id_task_id_project, task_execution_id_task_id_domain, task_execution_id_task_id_name, task_execution_id_task_id_version, task_execution_id_retry_attempt, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution` launched by the reference :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 + def list_task_executions2_with_http_info(self, node_execution_id_execution_id_org, node_execution_id_execution_id_project, node_execution_id_execution_id_domain, node_execution_id_execution_id_name, node_execution_id_node_id, **kwargs): # noqa: E501 + """Fetches a list of :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_node_executions_for_task2_with_http_info(task_execution_id_node_execution_id_execution_id_org, task_execution_id_node_execution_id_execution_id_project, task_execution_id_node_execution_id_execution_id_domain, task_execution_id_node_execution_id_execution_id_name, task_execution_id_node_execution_id_node_id, task_execution_id_task_id_project, task_execution_id_task_id_domain, task_execution_id_task_id_name, task_execution_id_task_id_version, task_execution_id_retry_attempt, async_req=True) + >>> thread = api.list_task_executions2_with_http_info(node_execution_id_execution_id_org, node_execution_id_execution_id_project, node_execution_id_execution_id_domain, node_execution_id_execution_id_name, node_execution_id_node_id, async_req=True) >>> result = thread.get() :param async_req bool - :param str task_execution_id_node_execution_id_execution_id_org: Optional, org key applied to the resource. (required) - :param str task_execution_id_node_execution_id_execution_id_project: Name of the project the resource belongs to. (required) - :param str task_execution_id_node_execution_id_execution_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str task_execution_id_node_execution_id_execution_id_name: User or system provided value for the resource. (required) - :param str task_execution_id_node_execution_id_node_id: (required) - :param str task_execution_id_task_id_project: Name of the project the resource belongs to. (required) - :param str task_execution_id_task_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str task_execution_id_task_id_name: User provided value for the resource. (required) - :param str task_execution_id_task_id_version: Specific version of the resource. (required) - :param int task_execution_id_retry_attempt: (required) - :param str task_execution_id_task_id_resource_type: Identifies the specific type of resource that this identifier corresponds to. - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects. Eventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects in a similar manner to other Flyte objects - :param str task_execution_id_task_id_org: Optional, org key applied to the resource. + :param str node_execution_id_execution_id_org: Optional, org key applied to the resource. (required) + :param str node_execution_id_execution_id_project: Name of the project the resource belongs to. (required) + :param str node_execution_id_execution_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str node_execution_id_execution_id_name: User or system provided value for the resource. (required) + :param str node_execution_id_node_id: (required) :param int limit: Indicates the number of resources to be returned. +required. - :param str token: In the case of multiple pages of results, the, server-provided token can be used to fetch the next page in a query. +optional. + :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. :param str sort_by_key: Indicates an attribute to sort the response values. +required. :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :return: AdminNodeExecutionList + :return: AdminTaskExecutionList If the method is called asynchronously, returns the request thread. """ - all_params = ['task_execution_id_node_execution_id_execution_id_org', 'task_execution_id_node_execution_id_execution_id_project', 'task_execution_id_node_execution_id_execution_id_domain', 'task_execution_id_node_execution_id_execution_id_name', 'task_execution_id_node_execution_id_node_id', 'task_execution_id_task_id_project', 'task_execution_id_task_id_domain', 'task_execution_id_task_id_name', 'task_execution_id_task_id_version', 'task_execution_id_retry_attempt', 'task_execution_id_task_id_resource_type', 'task_execution_id_task_id_org', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # noqa: E501 + all_params = ['node_execution_id_execution_id_org', 'node_execution_id_execution_id_project', 'node_execution_id_execution_id_domain', 'node_execution_id_execution_id_name', 'node_execution_id_node_id', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -8385,80 +9912,46 @@ def list_node_executions_for_task2_with_http_info(self, task_execution_id_node_e if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method list_node_executions_for_task2" % key + " to method list_task_executions2" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'task_execution_id_node_execution_id_execution_id_org' is set - if ('task_execution_id_node_execution_id_execution_id_org' not in params or - params['task_execution_id_node_execution_id_execution_id_org'] is None): - raise ValueError("Missing the required parameter `task_execution_id_node_execution_id_execution_id_org` when calling `list_node_executions_for_task2`") # noqa: E501 - # verify the required parameter 'task_execution_id_node_execution_id_execution_id_project' is set - if ('task_execution_id_node_execution_id_execution_id_project' not in params or - params['task_execution_id_node_execution_id_execution_id_project'] is None): - raise ValueError("Missing the required parameter `task_execution_id_node_execution_id_execution_id_project` when calling `list_node_executions_for_task2`") # noqa: E501 - # verify the required parameter 'task_execution_id_node_execution_id_execution_id_domain' is set - if ('task_execution_id_node_execution_id_execution_id_domain' not in params or - params['task_execution_id_node_execution_id_execution_id_domain'] is None): - raise ValueError("Missing the required parameter `task_execution_id_node_execution_id_execution_id_domain` when calling `list_node_executions_for_task2`") # noqa: E501 - # verify the required parameter 'task_execution_id_node_execution_id_execution_id_name' is set - if ('task_execution_id_node_execution_id_execution_id_name' not in params or - params['task_execution_id_node_execution_id_execution_id_name'] is None): - raise ValueError("Missing the required parameter `task_execution_id_node_execution_id_execution_id_name` when calling `list_node_executions_for_task2`") # noqa: E501 - # verify the required parameter 'task_execution_id_node_execution_id_node_id' is set - if ('task_execution_id_node_execution_id_node_id' not in params or - params['task_execution_id_node_execution_id_node_id'] is None): - raise ValueError("Missing the required parameter `task_execution_id_node_execution_id_node_id` when calling `list_node_executions_for_task2`") # noqa: E501 - # verify the required parameter 'task_execution_id_task_id_project' is set - if ('task_execution_id_task_id_project' not in params or - params['task_execution_id_task_id_project'] is None): - raise ValueError("Missing the required parameter `task_execution_id_task_id_project` when calling `list_node_executions_for_task2`") # noqa: E501 - # verify the required parameter 'task_execution_id_task_id_domain' is set - if ('task_execution_id_task_id_domain' not in params or - params['task_execution_id_task_id_domain'] is None): - raise ValueError("Missing the required parameter `task_execution_id_task_id_domain` when calling `list_node_executions_for_task2`") # noqa: E501 - # verify the required parameter 'task_execution_id_task_id_name' is set - if ('task_execution_id_task_id_name' not in params or - params['task_execution_id_task_id_name'] is None): - raise ValueError("Missing the required parameter `task_execution_id_task_id_name` when calling `list_node_executions_for_task2`") # noqa: E501 - # verify the required parameter 'task_execution_id_task_id_version' is set - if ('task_execution_id_task_id_version' not in params or - params['task_execution_id_task_id_version'] is None): - raise ValueError("Missing the required parameter `task_execution_id_task_id_version` when calling `list_node_executions_for_task2`") # noqa: E501 - # verify the required parameter 'task_execution_id_retry_attempt' is set - if ('task_execution_id_retry_attempt' not in params or - params['task_execution_id_retry_attempt'] is None): - raise ValueError("Missing the required parameter `task_execution_id_retry_attempt` when calling `list_node_executions_for_task2`") # noqa: E501 + # verify the required parameter 'node_execution_id_execution_id_org' is set + if ('node_execution_id_execution_id_org' not in params or + params['node_execution_id_execution_id_org'] is None): + raise ValueError("Missing the required parameter `node_execution_id_execution_id_org` when calling `list_task_executions2`") # noqa: E501 + # verify the required parameter 'node_execution_id_execution_id_project' is set + if ('node_execution_id_execution_id_project' not in params or + params['node_execution_id_execution_id_project'] is None): + raise ValueError("Missing the required parameter `node_execution_id_execution_id_project` when calling `list_task_executions2`") # noqa: E501 + # verify the required parameter 'node_execution_id_execution_id_domain' is set + if ('node_execution_id_execution_id_domain' not in params or + params['node_execution_id_execution_id_domain'] is None): + raise ValueError("Missing the required parameter `node_execution_id_execution_id_domain` when calling `list_task_executions2`") # noqa: E501 + # verify the required parameter 'node_execution_id_execution_id_name' is set + if ('node_execution_id_execution_id_name' not in params or + params['node_execution_id_execution_id_name'] is None): + raise ValueError("Missing the required parameter `node_execution_id_execution_id_name` when calling `list_task_executions2`") # noqa: E501 + # verify the required parameter 'node_execution_id_node_id' is set + if ('node_execution_id_node_id' not in params or + params['node_execution_id_node_id'] is None): + raise ValueError("Missing the required parameter `node_execution_id_node_id` when calling `list_task_executions2`") # noqa: E501 collection_formats = {} path_params = {} - if 'task_execution_id_node_execution_id_execution_id_org' in params: - path_params['task_execution_id.node_execution_id.execution_id.org'] = params['task_execution_id_node_execution_id_execution_id_org'] # noqa: E501 - if 'task_execution_id_node_execution_id_execution_id_project' in params: - path_params['task_execution_id.node_execution_id.execution_id.project'] = params['task_execution_id_node_execution_id_execution_id_project'] # noqa: E501 - if 'task_execution_id_node_execution_id_execution_id_domain' in params: - path_params['task_execution_id.node_execution_id.execution_id.domain'] = params['task_execution_id_node_execution_id_execution_id_domain'] # noqa: E501 - if 'task_execution_id_node_execution_id_execution_id_name' in params: - path_params['task_execution_id.node_execution_id.execution_id.name'] = params['task_execution_id_node_execution_id_execution_id_name'] # noqa: E501 - if 'task_execution_id_node_execution_id_node_id' in params: - path_params['task_execution_id.node_execution_id.node_id'] = params['task_execution_id_node_execution_id_node_id'] # noqa: E501 - if 'task_execution_id_task_id_project' in params: - path_params['task_execution_id.task_id.project'] = params['task_execution_id_task_id_project'] # noqa: E501 - if 'task_execution_id_task_id_domain' in params: - path_params['task_execution_id.task_id.domain'] = params['task_execution_id_task_id_domain'] # noqa: E501 - if 'task_execution_id_task_id_name' in params: - path_params['task_execution_id.task_id.name'] = params['task_execution_id_task_id_name'] # noqa: E501 - if 'task_execution_id_task_id_version' in params: - path_params['task_execution_id.task_id.version'] = params['task_execution_id_task_id_version'] # noqa: E501 - if 'task_execution_id_retry_attempt' in params: - path_params['task_execution_id.retry_attempt'] = params['task_execution_id_retry_attempt'] # noqa: E501 + if 'node_execution_id_execution_id_org' in params: + path_params['node_execution_id.execution_id.org'] = params['node_execution_id_execution_id_org'] # noqa: E501 + if 'node_execution_id_execution_id_project' in params: + path_params['node_execution_id.execution_id.project'] = params['node_execution_id_execution_id_project'] # noqa: E501 + if 'node_execution_id_execution_id_domain' in params: + path_params['node_execution_id.execution_id.domain'] = params['node_execution_id_execution_id_domain'] # noqa: E501 + if 'node_execution_id_execution_id_name' in params: + path_params['node_execution_id.execution_id.name'] = params['node_execution_id_execution_id_name'] # noqa: E501 + if 'node_execution_id_node_id' in params: + path_params['node_execution_id.node_id'] = params['node_execution_id_node_id'] # noqa: E501 query_params = [] - if 'task_execution_id_task_id_resource_type' in params: - query_params.append(('task_execution_id.task_id.resource_type', params['task_execution_id_task_id_resource_type'])) # noqa: E501 - if 'task_execution_id_task_id_org' in params: - query_params.append(('task_execution_id.task_id.org', params['task_execution_id_task_id_org'])) # noqa: E501 if 'limit' in params: query_params.append(('limit', params['limit'])) # noqa: E501 if 'token' in params: @@ -8488,14 +9981,14 @@ def list_node_executions_for_task2_with_http_info(self, task_execution_id_node_e auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/children/task_executions/org/{task_execution_id.node_execution_id.execution_id.org}/{task_execution_id.node_execution_id.execution_id.project}/{task_execution_id.node_execution_id.execution_id.domain}/{task_execution_id.node_execution_id.execution_id.name}/{task_execution_id.node_execution_id.node_id}/{task_execution_id.task_id.project}/{task_execution_id.task_id.domain}/{task_execution_id.task_id.name}/{task_execution_id.task_id.version}/{task_execution_id.retry_attempt}', 'GET', + '/api/v1/task_executions/org/{node_execution_id.execution_id.org}/{node_execution_id.execution_id.project}/{node_execution_id.execution_id.domain}/{node_execution_id.execution_id.name}/{node_execution_id.node_id}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminNodeExecutionList', # noqa: E501 + response_type='AdminTaskExecutionList', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -8503,51 +9996,57 @@ def list_node_executions_for_task2_with_http_info(self, task_execution_id_node_e _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def list_projects(self, **kwargs): # noqa: E501 - """Fetches a list of :ref:`ref_flyteidl.admin.Project` # noqa: E501 + def list_task_ids(self, project, domain, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of task objects. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_projects(async_req=True) + >>> thread = api.list_task_ids(project, domain, async_req=True) >>> result = thread.get() :param async_req bool - :param int limit: Indicates the number of projects to be returned. +required. - :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. - :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. + :param str project: Name of the project that contains the identifiers. +required (required) + :param str domain: Name of the domain the identifiers belongs to within the project. +required (required) + :param int limit: Indicates the number of resources to be returned. +required. + :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. :param str sort_by_key: Indicates an attribute to sort the response values. +required. :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :return: AdminProjects + :param str filters: Indicates a list of filters passed as string. +optional. + :param str org: Optional, org key applied to the resource. + :return: AdminNamedEntityIdentifierList If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.list_projects_with_http_info(**kwargs) # noqa: E501 + return self.list_task_ids_with_http_info(project, domain, **kwargs) # noqa: E501 else: - (data) = self.list_projects_with_http_info(**kwargs) # noqa: E501 + (data) = self.list_task_ids_with_http_info(project, domain, **kwargs) # noqa: E501 return data - def list_projects_with_http_info(self, **kwargs): # noqa: E501 - """Fetches a list of :ref:`ref_flyteidl.admin.Project` # noqa: E501 + def list_task_ids_with_http_info(self, project, domain, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of task objects. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_projects_with_http_info(async_req=True) + >>> thread = api.list_task_ids_with_http_info(project, domain, async_req=True) >>> result = thread.get() :param async_req bool - :param int limit: Indicates the number of projects to be returned. +required. - :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. - :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. + :param str project: Name of the project that contains the identifiers. +required (required) + :param str domain: Name of the domain the identifiers belongs to within the project. +required (required) + :param int limit: Indicates the number of resources to be returned. +required. + :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. :param str sort_by_key: Indicates an attribute to sort the response values. +required. :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :return: AdminProjects + :param str filters: Indicates a list of filters passed as string. +optional. + :param str org: Optional, org key applied to the resource. + :return: AdminNamedEntityIdentifierList If the method is called asynchronously, returns the request thread. """ - all_params = ['limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # noqa: E501 + all_params = ['project', 'domain', 'limit', 'token', 'sort_by_key', 'sort_by_direction', 'filters', 'org'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -8558,26 +10057,40 @@ def list_projects_with_http_info(self, **kwargs): # noqa: E501 if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method list_projects" % key + " to method list_task_ids" % key ) params[key] = val del params['kwargs'] + # verify the required parameter 'project' is set + if ('project' not in params or + params['project'] is None): + raise ValueError("Missing the required parameter `project` when calling `list_task_ids`") # noqa: E501 + # verify the required parameter 'domain' is set + if ('domain' not in params or + params['domain'] is None): + raise ValueError("Missing the required parameter `domain` when calling `list_task_ids`") # noqa: E501 collection_formats = {} path_params = {} + if 'project' in params: + path_params['project'] = params['project'] # noqa: E501 + if 'domain' in params: + path_params['domain'] = params['domain'] # noqa: E501 query_params = [] if 'limit' in params: query_params.append(('limit', params['limit'])) # noqa: E501 if 'token' in params: query_params.append(('token', params['token'])) # noqa: E501 - if 'filters' in params: - query_params.append(('filters', params['filters'])) # noqa: E501 if 'sort_by_key' in params: query_params.append(('sort_by.key', params['sort_by_key'])) # noqa: E501 if 'sort_by_direction' in params: query_params.append(('sort_by.direction', params['sort_by_direction'])) # noqa: E501 + if 'filters' in params: + query_params.append(('filters', params['filters'])) # noqa: E501 + if 'org' in params: + query_params.append(('org', params['org'])) # noqa: E501 header_params = {} @@ -8597,14 +10110,14 @@ def list_projects_with_http_info(self, **kwargs): # noqa: E501 auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/projects', 'GET', + '/api/v1/task_ids/{project}/{domain}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminProjects', # noqa: E501 + response_type='AdminNamedEntityIdentifierList', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -8612,61 +10125,57 @@ def list_projects_with_http_info(self, **kwargs): # noqa: E501 _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def list_task_executions(self, node_execution_id_execution_id_project, node_execution_id_execution_id_domain, node_execution_id_execution_id_name, node_execution_id_node_id, **kwargs): # noqa: E501 - """Fetches a list of :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 + def list_task_ids2(self, org, project, domain, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of task objects. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_task_executions(node_execution_id_execution_id_project, node_execution_id_execution_id_domain, node_execution_id_execution_id_name, node_execution_id_node_id, async_req=True) + >>> thread = api.list_task_ids2(org, project, domain, async_req=True) >>> result = thread.get() :param async_req bool - :param str node_execution_id_execution_id_project: Name of the project the resource belongs to. (required) - :param str node_execution_id_execution_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str node_execution_id_execution_id_name: User or system provided value for the resource. (required) - :param str node_execution_id_node_id: (required) - :param str node_execution_id_execution_id_org: Optional, org key applied to the resource. + :param str org: Optional, org key applied to the resource. (required) + :param str project: Name of the project that contains the identifiers. +required (required) + :param str domain: Name of the domain the identifiers belongs to within the project. +required (required) :param int limit: Indicates the number of resources to be returned. +required. :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. - :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. :param str sort_by_key: Indicates an attribute to sort the response values. +required. :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :return: AdminTaskExecutionList + :param str filters: Indicates a list of filters passed as string. +optional. + :return: AdminNamedEntityIdentifierList If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.list_task_executions_with_http_info(node_execution_id_execution_id_project, node_execution_id_execution_id_domain, node_execution_id_execution_id_name, node_execution_id_node_id, **kwargs) # noqa: E501 + return self.list_task_ids2_with_http_info(org, project, domain, **kwargs) # noqa: E501 else: - (data) = self.list_task_executions_with_http_info(node_execution_id_execution_id_project, node_execution_id_execution_id_domain, node_execution_id_execution_id_name, node_execution_id_node_id, **kwargs) # noqa: E501 + (data) = self.list_task_ids2_with_http_info(org, project, domain, **kwargs) # noqa: E501 return data - def list_task_executions_with_http_info(self, node_execution_id_execution_id_project, node_execution_id_execution_id_domain, node_execution_id_execution_id_name, node_execution_id_node_id, **kwargs): # noqa: E501 - """Fetches a list of :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 + def list_task_ids2_with_http_info(self, org, project, domain, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of task objects. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_task_executions_with_http_info(node_execution_id_execution_id_project, node_execution_id_execution_id_domain, node_execution_id_execution_id_name, node_execution_id_node_id, async_req=True) + >>> thread = api.list_task_ids2_with_http_info(org, project, domain, async_req=True) >>> result = thread.get() :param async_req bool - :param str node_execution_id_execution_id_project: Name of the project the resource belongs to. (required) - :param str node_execution_id_execution_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str node_execution_id_execution_id_name: User or system provided value for the resource. (required) - :param str node_execution_id_node_id: (required) - :param str node_execution_id_execution_id_org: Optional, org key applied to the resource. + :param str org: Optional, org key applied to the resource. (required) + :param str project: Name of the project that contains the identifiers. +required (required) + :param str domain: Name of the domain the identifiers belongs to within the project. +required (required) :param int limit: Indicates the number of resources to be returned. +required. :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. - :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. :param str sort_by_key: Indicates an attribute to sort the response values. +required. :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :return: AdminTaskExecutionList + :param str filters: Indicates a list of filters passed as string. +optional. + :return: AdminNamedEntityIdentifierList If the method is called asynchronously, returns the request thread. """ - all_params = ['node_execution_id_execution_id_project', 'node_execution_id_execution_id_domain', 'node_execution_id_execution_id_name', 'node_execution_id_node_id', 'node_execution_id_execution_id_org', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # noqa: E501 + all_params = ['org', 'project', 'domain', 'limit', 'token', 'sort_by_key', 'sort_by_direction', 'filters'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -8677,52 +10186,44 @@ def list_task_executions_with_http_info(self, node_execution_id_execution_id_pro if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method list_task_executions" % key + " to method list_task_ids2" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'node_execution_id_execution_id_project' is set - if ('node_execution_id_execution_id_project' not in params or - params['node_execution_id_execution_id_project'] is None): - raise ValueError("Missing the required parameter `node_execution_id_execution_id_project` when calling `list_task_executions`") # noqa: E501 - # verify the required parameter 'node_execution_id_execution_id_domain' is set - if ('node_execution_id_execution_id_domain' not in params or - params['node_execution_id_execution_id_domain'] is None): - raise ValueError("Missing the required parameter `node_execution_id_execution_id_domain` when calling `list_task_executions`") # noqa: E501 - # verify the required parameter 'node_execution_id_execution_id_name' is set - if ('node_execution_id_execution_id_name' not in params or - params['node_execution_id_execution_id_name'] is None): - raise ValueError("Missing the required parameter `node_execution_id_execution_id_name` when calling `list_task_executions`") # noqa: E501 - # verify the required parameter 'node_execution_id_node_id' is set - if ('node_execution_id_node_id' not in params or - params['node_execution_id_node_id'] is None): - raise ValueError("Missing the required parameter `node_execution_id_node_id` when calling `list_task_executions`") # noqa: E501 + # verify the required parameter 'org' is set + if ('org' not in params or + params['org'] is None): + raise ValueError("Missing the required parameter `org` when calling `list_task_ids2`") # noqa: E501 + # verify the required parameter 'project' is set + if ('project' not in params or + params['project'] is None): + raise ValueError("Missing the required parameter `project` when calling `list_task_ids2`") # noqa: E501 + # verify the required parameter 'domain' is set + if ('domain' not in params or + params['domain'] is None): + raise ValueError("Missing the required parameter `domain` when calling `list_task_ids2`") # noqa: E501 collection_formats = {} path_params = {} - if 'node_execution_id_execution_id_project' in params: - path_params['node_execution_id.execution_id.project'] = params['node_execution_id_execution_id_project'] # noqa: E501 - if 'node_execution_id_execution_id_domain' in params: - path_params['node_execution_id.execution_id.domain'] = params['node_execution_id_execution_id_domain'] # noqa: E501 - if 'node_execution_id_execution_id_name' in params: - path_params['node_execution_id.execution_id.name'] = params['node_execution_id_execution_id_name'] # noqa: E501 - if 'node_execution_id_node_id' in params: - path_params['node_execution_id.node_id'] = params['node_execution_id_node_id'] # noqa: E501 + if 'org' in params: + path_params['org'] = params['org'] # noqa: E501 + if 'project' in params: + path_params['project'] = params['project'] # noqa: E501 + if 'domain' in params: + path_params['domain'] = params['domain'] # noqa: E501 query_params = [] - if 'node_execution_id_execution_id_org' in params: - query_params.append(('node_execution_id.execution_id.org', params['node_execution_id_execution_id_org'])) # noqa: E501 if 'limit' in params: query_params.append(('limit', params['limit'])) # noqa: E501 if 'token' in params: query_params.append(('token', params['token'])) # noqa: E501 - if 'filters' in params: - query_params.append(('filters', params['filters'])) # noqa: E501 if 'sort_by_key' in params: query_params.append(('sort_by.key', params['sort_by_key'])) # noqa: E501 if 'sort_by_direction' in params: query_params.append(('sort_by.direction', params['sort_by_direction'])) # noqa: E501 + if 'filters' in params: + query_params.append(('filters', params['filters'])) # noqa: E501 header_params = {} @@ -8742,14 +10243,14 @@ def list_task_executions_with_http_info(self, node_execution_id_execution_id_pro auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/task_executions/{node_execution_id.execution_id.project}/{node_execution_id.execution_id.domain}/{node_execution_id.execution_id.name}/{node_execution_id.node_id}', 'GET', + '/api/v1/tasks/org/{org}/{project}/{domain}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminTaskExecutionList', # noqa: E501 + response_type='AdminNamedEntityIdentifierList', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -8757,61 +10258,59 @@ def list_task_executions_with_http_info(self, node_execution_id_execution_id_pro _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def list_task_executions2(self, node_execution_id_execution_id_org, node_execution_id_execution_id_project, node_execution_id_execution_id_domain, node_execution_id_execution_id_name, node_execution_id_node_id, **kwargs): # noqa: E501 - """Fetches a list of :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 + def list_tasks(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_task_executions2(node_execution_id_execution_id_org, node_execution_id_execution_id_project, node_execution_id_execution_id_domain, node_execution_id_execution_id_name, node_execution_id_node_id, async_req=True) + >>> thread = api.list_tasks(id_project, id_domain, id_name, async_req=True) >>> result = thread.get() :param async_req bool - :param str node_execution_id_execution_id_org: Optional, org key applied to the resource. (required) - :param str node_execution_id_execution_id_project: Name of the project the resource belongs to. (required) - :param str node_execution_id_execution_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str node_execution_id_execution_id_name: User or system provided value for the resource. (required) - :param str node_execution_id_node_id: (required) + :param str id_project: Name of the project the resource belongs to. (required) + :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) + :param str id_org: Optional, org key applied to the resource. :param int limit: Indicates the number of resources to be returned. +required. - :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. + :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. :param str sort_by_key: Indicates an attribute to sort the response values. +required. :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :return: AdminTaskExecutionList + :return: AdminTaskList If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.list_task_executions2_with_http_info(node_execution_id_execution_id_org, node_execution_id_execution_id_project, node_execution_id_execution_id_domain, node_execution_id_execution_id_name, node_execution_id_node_id, **kwargs) # noqa: E501 + return self.list_tasks_with_http_info(id_project, id_domain, id_name, **kwargs) # noqa: E501 else: - (data) = self.list_task_executions2_with_http_info(node_execution_id_execution_id_org, node_execution_id_execution_id_project, node_execution_id_execution_id_domain, node_execution_id_execution_id_name, node_execution_id_node_id, **kwargs) # noqa: E501 + (data) = self.list_tasks_with_http_info(id_project, id_domain, id_name, **kwargs) # noqa: E501 return data - def list_task_executions2_with_http_info(self, node_execution_id_execution_id_org, node_execution_id_execution_id_project, node_execution_id_execution_id_domain, node_execution_id_execution_id_name, node_execution_id_node_id, **kwargs): # noqa: E501 - """Fetches a list of :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 + def list_tasks_with_http_info(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_task_executions2_with_http_info(node_execution_id_execution_id_org, node_execution_id_execution_id_project, node_execution_id_execution_id_domain, node_execution_id_execution_id_name, node_execution_id_node_id, async_req=True) + >>> thread = api.list_tasks_with_http_info(id_project, id_domain, id_name, async_req=True) >>> result = thread.get() :param async_req bool - :param str node_execution_id_execution_id_org: Optional, org key applied to the resource. (required) - :param str node_execution_id_execution_id_project: Name of the project the resource belongs to. (required) - :param str node_execution_id_execution_id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str node_execution_id_execution_id_name: User or system provided value for the resource. (required) - :param str node_execution_id_node_id: (required) + :param str id_project: Name of the project the resource belongs to. (required) + :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) + :param str id_org: Optional, org key applied to the resource. :param int limit: Indicates the number of resources to be returned. +required. - :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. + :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. :param str sort_by_key: Indicates an attribute to sort the response values. +required. :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :return: AdminTaskExecutionList + :return: AdminTaskList If the method is called asynchronously, returns the request thread. """ - all_params = ['node_execution_id_execution_id_org', 'node_execution_id_execution_id_project', 'node_execution_id_execution_id_domain', 'node_execution_id_execution_id_name', 'node_execution_id_node_id', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # noqa: E501 + all_params = ['id_project', 'id_domain', 'id_name', 'id_org', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -8822,46 +10321,36 @@ def list_task_executions2_with_http_info(self, node_execution_id_execution_id_or if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method list_task_executions2" % key + " to method list_tasks" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'node_execution_id_execution_id_org' is set - if ('node_execution_id_execution_id_org' not in params or - params['node_execution_id_execution_id_org'] is None): - raise ValueError("Missing the required parameter `node_execution_id_execution_id_org` when calling `list_task_executions2`") # noqa: E501 - # verify the required parameter 'node_execution_id_execution_id_project' is set - if ('node_execution_id_execution_id_project' not in params or - params['node_execution_id_execution_id_project'] is None): - raise ValueError("Missing the required parameter `node_execution_id_execution_id_project` when calling `list_task_executions2`") # noqa: E501 - # verify the required parameter 'node_execution_id_execution_id_domain' is set - if ('node_execution_id_execution_id_domain' not in params or - params['node_execution_id_execution_id_domain'] is None): - raise ValueError("Missing the required parameter `node_execution_id_execution_id_domain` when calling `list_task_executions2`") # noqa: E501 - # verify the required parameter 'node_execution_id_execution_id_name' is set - if ('node_execution_id_execution_id_name' not in params or - params['node_execution_id_execution_id_name'] is None): - raise ValueError("Missing the required parameter `node_execution_id_execution_id_name` when calling `list_task_executions2`") # noqa: E501 - # verify the required parameter 'node_execution_id_node_id' is set - if ('node_execution_id_node_id' not in params or - params['node_execution_id_node_id'] is None): - raise ValueError("Missing the required parameter `node_execution_id_node_id` when calling `list_task_executions2`") # noqa: E501 + # verify the required parameter 'id_project' is set + if ('id_project' not in params or + params['id_project'] is None): + raise ValueError("Missing the required parameter `id_project` when calling `list_tasks`") # noqa: E501 + # verify the required parameter 'id_domain' is set + if ('id_domain' not in params or + params['id_domain'] is None): + raise ValueError("Missing the required parameter `id_domain` when calling `list_tasks`") # noqa: E501 + # verify the required parameter 'id_name' is set + if ('id_name' not in params or + params['id_name'] is None): + raise ValueError("Missing the required parameter `id_name` when calling `list_tasks`") # noqa: E501 collection_formats = {} path_params = {} - if 'node_execution_id_execution_id_org' in params: - path_params['node_execution_id.execution_id.org'] = params['node_execution_id_execution_id_org'] # noqa: E501 - if 'node_execution_id_execution_id_project' in params: - path_params['node_execution_id.execution_id.project'] = params['node_execution_id_execution_id_project'] # noqa: E501 - if 'node_execution_id_execution_id_domain' in params: - path_params['node_execution_id.execution_id.domain'] = params['node_execution_id_execution_id_domain'] # noqa: E501 - if 'node_execution_id_execution_id_name' in params: - path_params['node_execution_id.execution_id.name'] = params['node_execution_id_execution_id_name'] # noqa: E501 - if 'node_execution_id_node_id' in params: - path_params['node_execution_id.node_id'] = params['node_execution_id_node_id'] # noqa: E501 + if 'id_project' in params: + path_params['id.project'] = params['id_project'] # noqa: E501 + if 'id_domain' in params: + path_params['id.domain'] = params['id_domain'] # noqa: E501 + if 'id_name' in params: + path_params['id.name'] = params['id_name'] # noqa: E501 query_params = [] + if 'id_org' in params: + query_params.append(('id.org', params['id_org'])) # noqa: E501 if 'limit' in params: query_params.append(('limit', params['limit'])) # noqa: E501 if 'token' in params: @@ -8891,14 +10380,14 @@ def list_task_executions2_with_http_info(self, node_execution_id_execution_id_or auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/task_executions/org/{node_execution_id.execution_id.org}/{node_execution_id.execution_id.project}/{node_execution_id.execution_id.domain}/{node_execution_id.execution_id.name}/{node_execution_id.node_id}', 'GET', + '/api/v1/tasks/{id.project}/{id.domain}/{id.name}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminTaskExecutionList', # noqa: E501 + response_type='AdminTaskList', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -8906,57 +10395,59 @@ def list_task_executions2_with_http_info(self, node_execution_id_execution_id_or _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def list_task_ids(self, project, domain, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of task objects. # noqa: E501 + def list_tasks2(self, id_org, id_project, id_domain, id_name, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_task_ids(project, domain, async_req=True) + >>> thread = api.list_tasks2(id_org, id_project, id_domain, id_name, async_req=True) >>> result = thread.get() :param async_req bool - :param str project: Name of the project that contains the identifiers. +required (required) - :param str domain: Name of the domain the identifiers belongs to within the project. +required (required) + :param str id_org: Optional, org key applied to the resource. (required) + :param str id_project: Name of the project the resource belongs to. (required) + :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) :param int limit: Indicates the number of resources to be returned. +required. - :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. + :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. + :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. :param str sort_by_key: Indicates an attribute to sort the response values. +required. :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :param str filters: Indicates a list of filters passed as string. +optional. - :param str org: Optional, org key applied to the resource. - :return: AdminNamedEntityIdentifierList + :return: AdminTaskList If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.list_task_ids_with_http_info(project, domain, **kwargs) # noqa: E501 + return self.list_tasks2_with_http_info(id_org, id_project, id_domain, id_name, **kwargs) # noqa: E501 else: - (data) = self.list_task_ids_with_http_info(project, domain, **kwargs) # noqa: E501 + (data) = self.list_tasks2_with_http_info(id_org, id_project, id_domain, id_name, **kwargs) # noqa: E501 return data - def list_task_ids_with_http_info(self, project, domain, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of task objects. # noqa: E501 + def list_tasks2_with_http_info(self, id_org, id_project, id_domain, id_name, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_task_ids_with_http_info(project, domain, async_req=True) + >>> thread = api.list_tasks2_with_http_info(id_org, id_project, id_domain, id_name, async_req=True) >>> result = thread.get() :param async_req bool - :param str project: Name of the project that contains the identifiers. +required (required) - :param str domain: Name of the domain the identifiers belongs to within the project. +required (required) + :param str id_org: Optional, org key applied to the resource. (required) + :param str id_project: Name of the project the resource belongs to. (required) + :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) :param int limit: Indicates the number of resources to be returned. +required. - :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. + :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. + :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. :param str sort_by_key: Indicates an attribute to sort the response values. +required. :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :param str filters: Indicates a list of filters passed as string. +optional. - :param str org: Optional, org key applied to the resource. - :return: AdminNamedEntityIdentifierList + :return: AdminTaskList If the method is called asynchronously, returns the request thread. """ - all_params = ['project', 'domain', 'limit', 'token', 'sort_by_key', 'sort_by_direction', 'filters', 'org'] # noqa: E501 + all_params = ['id_org', 'id_project', 'id_domain', 'id_name', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -8967,40 +10458,50 @@ def list_task_ids_with_http_info(self, project, domain, **kwargs): # noqa: E501 if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method list_task_ids" % key + " to method list_tasks2" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'project' is set - if ('project' not in params or - params['project'] is None): - raise ValueError("Missing the required parameter `project` when calling `list_task_ids`") # noqa: E501 - # verify the required parameter 'domain' is set - if ('domain' not in params or - params['domain'] is None): - raise ValueError("Missing the required parameter `domain` when calling `list_task_ids`") # noqa: E501 + # verify the required parameter 'id_org' is set + if ('id_org' not in params or + params['id_org'] is None): + raise ValueError("Missing the required parameter `id_org` when calling `list_tasks2`") # noqa: E501 + # verify the required parameter 'id_project' is set + if ('id_project' not in params or + params['id_project'] is None): + raise ValueError("Missing the required parameter `id_project` when calling `list_tasks2`") # noqa: E501 + # verify the required parameter 'id_domain' is set + if ('id_domain' not in params or + params['id_domain'] is None): + raise ValueError("Missing the required parameter `id_domain` when calling `list_tasks2`") # noqa: E501 + # verify the required parameter 'id_name' is set + if ('id_name' not in params or + params['id_name'] is None): + raise ValueError("Missing the required parameter `id_name` when calling `list_tasks2`") # noqa: E501 collection_formats = {} path_params = {} - if 'project' in params: - path_params['project'] = params['project'] # noqa: E501 - if 'domain' in params: - path_params['domain'] = params['domain'] # noqa: E501 + if 'id_org' in params: + path_params['id.org'] = params['id_org'] # noqa: E501 + if 'id_project' in params: + path_params['id.project'] = params['id_project'] # noqa: E501 + if 'id_domain' in params: + path_params['id.domain'] = params['id_domain'] # noqa: E501 + if 'id_name' in params: + path_params['id.name'] = params['id_name'] # noqa: E501 query_params = [] if 'limit' in params: query_params.append(('limit', params['limit'])) # noqa: E501 if 'token' in params: query_params.append(('token', params['token'])) # noqa: E501 + if 'filters' in params: + query_params.append(('filters', params['filters'])) # noqa: E501 if 'sort_by_key' in params: query_params.append(('sort_by.key', params['sort_by_key'])) # noqa: E501 if 'sort_by_direction' in params: query_params.append(('sort_by.direction', params['sort_by_direction'])) # noqa: E501 - if 'filters' in params: - query_params.append(('filters', params['filters'])) # noqa: E501 - if 'org' in params: - query_params.append(('org', params['org'])) # noqa: E501 header_params = {} @@ -9020,14 +10521,14 @@ def list_task_ids_with_http_info(self, project, domain, **kwargs): # noqa: E501 auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/task_ids/{project}/{domain}', 'GET', + '/api/v1/tasks/org/{id.org}/{id.project}/{id.domain}/{id.name}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminNamedEntityIdentifierList', # noqa: E501 + response_type='AdminTaskList', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -9035,57 +10536,59 @@ def list_task_ids_with_http_info(self, project, domain, **kwargs): # noqa: E501 _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def list_task_ids2(self, org, project, domain, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of task objects. # noqa: E501 + def list_tasks3(self, id_project, id_domain, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_task_ids2(org, project, domain, async_req=True) + >>> thread = api.list_tasks3(id_project, id_domain, async_req=True) >>> result = thread.get() :param async_req bool - :param str org: Optional, org key applied to the resource. (required) - :param str project: Name of the project that contains the identifiers. +required (required) - :param str domain: Name of the domain the identifiers belongs to within the project. +required (required) + :param str id_project: Name of the project the resource belongs to. (required) + :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. + :param str id_org: Optional, org key applied to the resource. :param int limit: Indicates the number of resources to be returned. +required. - :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. + :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. + :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. :param str sort_by_key: Indicates an attribute to sort the response values. +required. :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :param str filters: Indicates a list of filters passed as string. +optional. - :return: AdminNamedEntityIdentifierList + :return: AdminTaskList If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.list_task_ids2_with_http_info(org, project, domain, **kwargs) # noqa: E501 + return self.list_tasks3_with_http_info(id_project, id_domain, **kwargs) # noqa: E501 else: - (data) = self.list_task_ids2_with_http_info(org, project, domain, **kwargs) # noqa: E501 + (data) = self.list_tasks3_with_http_info(id_project, id_domain, **kwargs) # noqa: E501 return data - def list_task_ids2_with_http_info(self, org, project, domain, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of task objects. # noqa: E501 + def list_tasks3_with_http_info(self, id_project, id_domain, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_task_ids2_with_http_info(org, project, domain, async_req=True) + >>> thread = api.list_tasks3_with_http_info(id_project, id_domain, async_req=True) >>> result = thread.get() :param async_req bool - :param str org: Optional, org key applied to the resource. (required) - :param str project: Name of the project that contains the identifiers. +required (required) - :param str domain: Name of the domain the identifiers belongs to within the project. +required (required) + :param str id_project: Name of the project the resource belongs to. (required) + :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. + :param str id_org: Optional, org key applied to the resource. :param int limit: Indicates the number of resources to be returned. +required. - :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. + :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. + :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. :param str sort_by_key: Indicates an attribute to sort the response values. +required. :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :param str filters: Indicates a list of filters passed as string. +optional. - :return: AdminNamedEntityIdentifierList + :return: AdminTaskList If the method is called asynchronously, returns the request thread. """ - all_params = ['org', 'project', 'domain', 'limit', 'token', 'sort_by_key', 'sort_by_direction', 'filters'] # noqa: E501 + all_params = ['id_project', 'id_domain', 'id_name', 'id_org', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -9096,44 +10599,42 @@ def list_task_ids2_with_http_info(self, org, project, domain, **kwargs): # noqa if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method list_task_ids2" % key + " to method list_tasks3" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'org' is set - if ('org' not in params or - params['org'] is None): - raise ValueError("Missing the required parameter `org` when calling `list_task_ids2`") # noqa: E501 - # verify the required parameter 'project' is set - if ('project' not in params or - params['project'] is None): - raise ValueError("Missing the required parameter `project` when calling `list_task_ids2`") # noqa: E501 - # verify the required parameter 'domain' is set - if ('domain' not in params or - params['domain'] is None): - raise ValueError("Missing the required parameter `domain` when calling `list_task_ids2`") # noqa: E501 + # verify the required parameter 'id_project' is set + if ('id_project' not in params or + params['id_project'] is None): + raise ValueError("Missing the required parameter `id_project` when calling `list_tasks3`") # noqa: E501 + # verify the required parameter 'id_domain' is set + if ('id_domain' not in params or + params['id_domain'] is None): + raise ValueError("Missing the required parameter `id_domain` when calling `list_tasks3`") # noqa: E501 collection_formats = {} path_params = {} - if 'org' in params: - path_params['org'] = params['org'] # noqa: E501 - if 'project' in params: - path_params['project'] = params['project'] # noqa: E501 - if 'domain' in params: - path_params['domain'] = params['domain'] # noqa: E501 + if 'id_project' in params: + path_params['id.project'] = params['id_project'] # noqa: E501 + if 'id_domain' in params: + path_params['id.domain'] = params['id_domain'] # noqa: E501 query_params = [] + if 'id_name' in params: + query_params.append(('id.name', params['id_name'])) # noqa: E501 + if 'id_org' in params: + query_params.append(('id.org', params['id_org'])) # noqa: E501 if 'limit' in params: query_params.append(('limit', params['limit'])) # noqa: E501 if 'token' in params: query_params.append(('token', params['token'])) # noqa: E501 + if 'filters' in params: + query_params.append(('filters', params['filters'])) # noqa: E501 if 'sort_by_key' in params: query_params.append(('sort_by.key', params['sort_by_key'])) # noqa: E501 if 'sort_by_direction' in params: query_params.append(('sort_by.direction', params['sort_by_direction'])) # noqa: E501 - if 'filters' in params: - query_params.append(('filters', params['filters'])) # noqa: E501 header_params = {} @@ -9153,14 +10654,14 @@ def list_task_ids2_with_http_info(self, org, project, domain, **kwargs): # noqa auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/tasks/org/{org}/{project}/{domain}', 'GET', + '/api/v1/tasks/{id.project}/{id.domain}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminNamedEntityIdentifierList', # noqa: E501 + response_type='AdminTaskList', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -9168,19 +10669,19 @@ def list_task_ids2_with_http_info(self, org, project, domain, **kwargs): # noqa _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def list_tasks(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 + def list_tasks4(self, id_org, id_project, id_domain, **kwargs): # noqa: E501 """Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_tasks(id_project, id_domain, id_name, async_req=True) + >>> thread = api.list_tasks4(id_org, id_project, id_domain, async_req=True) >>> result = thread.get() :param async_req bool + :param str id_org: Optional, org key applied to the resource. (required) :param str id_project: Name of the project the resource belongs to. (required) :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) - :param str id_org: Optional, org key applied to the resource. + :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. :param int limit: Indicates the number of resources to be returned. +required. :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. @@ -9192,24 +10693,24 @@ def list_tasks(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.list_tasks_with_http_info(id_project, id_domain, id_name, **kwargs) # noqa: E501 + return self.list_tasks4_with_http_info(id_org, id_project, id_domain, **kwargs) # noqa: E501 else: - (data) = self.list_tasks_with_http_info(id_project, id_domain, id_name, **kwargs) # noqa: E501 + (data) = self.list_tasks4_with_http_info(id_org, id_project, id_domain, **kwargs) # noqa: E501 return data - def list_tasks_with_http_info(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 + def list_tasks4_with_http_info(self, id_org, id_project, id_domain, **kwargs): # noqa: E501 """Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_tasks_with_http_info(id_project, id_domain, id_name, async_req=True) + >>> thread = api.list_tasks4_with_http_info(id_org, id_project, id_domain, async_req=True) >>> result = thread.get() :param async_req bool + :param str id_org: Optional, org key applied to the resource. (required) :param str id_project: Name of the project the resource belongs to. (required) :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) - :param str id_org: Optional, org key applied to the resource. + :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. :param int limit: Indicates the number of resources to be returned. +required. :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. @@ -9220,7 +10721,7 @@ def list_tasks_with_http_info(self, id_project, id_domain, id_name, **kwargs): returns the request thread. """ - all_params = ['id_project', 'id_domain', 'id_name', 'id_org', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # noqa: E501 + all_params = ['id_org', 'id_project', 'id_domain', 'id_name', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -9231,36 +10732,36 @@ def list_tasks_with_http_info(self, id_project, id_domain, id_name, **kwargs): if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method list_tasks" % key + " to method list_tasks4" % key ) params[key] = val del params['kwargs'] + # verify the required parameter 'id_org' is set + if ('id_org' not in params or + params['id_org'] is None): + raise ValueError("Missing the required parameter `id_org` when calling `list_tasks4`") # noqa: E501 # verify the required parameter 'id_project' is set if ('id_project' not in params or params['id_project'] is None): - raise ValueError("Missing the required parameter `id_project` when calling `list_tasks`") # noqa: E501 + raise ValueError("Missing the required parameter `id_project` when calling `list_tasks4`") # noqa: E501 # verify the required parameter 'id_domain' is set if ('id_domain' not in params or params['id_domain'] is None): - raise ValueError("Missing the required parameter `id_domain` when calling `list_tasks`") # noqa: E501 - # verify the required parameter 'id_name' is set - if ('id_name' not in params or - params['id_name'] is None): - raise ValueError("Missing the required parameter `id_name` when calling `list_tasks`") # noqa: E501 + raise ValueError("Missing the required parameter `id_domain` when calling `list_tasks4`") # noqa: E501 collection_formats = {} path_params = {} + if 'id_org' in params: + path_params['id.org'] = params['id_org'] # noqa: E501 if 'id_project' in params: path_params['id.project'] = params['id_project'] # noqa: E501 if 'id_domain' in params: path_params['id.domain'] = params['id_domain'] # noqa: E501 - if 'id_name' in params: - path_params['id.name'] = params['id_name'] # noqa: E501 query_params = [] - if 'id_org' in params: - query_params.append(('id.org', params['id_org'])) # noqa: E501 + if 'id_name' in params: + query_params.append(('id.name', params['id_name'])) # noqa: E501 if 'limit' in params: query_params.append(('limit', params['limit'])) # noqa: E501 if 'token' in params: @@ -9290,7 +10791,7 @@ def list_tasks_with_http_info(self, id_project, id_domain, id_name, **kwargs): auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/tasks/{id.project}/{id.domain}/{id.name}', 'GET', + '/api/v1/tasks/org/{id.org}/{id.project}/{id.domain}', 'GET', path_params, query_params, header_params, @@ -9305,59 +10806,57 @@ def list_tasks_with_http_info(self, id_project, id_domain, id_name, **kwargs): _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def list_tasks2(self, id_org, id_project, id_domain, id_name, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions. # noqa: E501 + def list_workflow_ids(self, project, domain, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of workflow objects. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_tasks2(id_org, id_project, id_domain, id_name, async_req=True) + >>> thread = api.list_workflow_ids(project, domain, async_req=True) >>> result = thread.get() :param async_req bool - :param str id_org: Optional, org key applied to the resource. (required) - :param str id_project: Name of the project the resource belongs to. (required) - :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) + :param str project: Name of the project that contains the identifiers. +required (required) + :param str domain: Name of the domain the identifiers belongs to within the project. +required (required) :param int limit: Indicates the number of resources to be returned. +required. - :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. - :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. + :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. :param str sort_by_key: Indicates an attribute to sort the response values. +required. :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :return: AdminTaskList + :param str filters: Indicates a list of filters passed as string. +optional. + :param str org: Optional, org key applied to the resource. + :return: AdminNamedEntityIdentifierList If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.list_tasks2_with_http_info(id_org, id_project, id_domain, id_name, **kwargs) # noqa: E501 + return self.list_workflow_ids_with_http_info(project, domain, **kwargs) # noqa: E501 else: - (data) = self.list_tasks2_with_http_info(id_org, id_project, id_domain, id_name, **kwargs) # noqa: E501 + (data) = self.list_workflow_ids_with_http_info(project, domain, **kwargs) # noqa: E501 return data - def list_tasks2_with_http_info(self, id_org, id_project, id_domain, id_name, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions. # noqa: E501 - + def list_workflow_ids_with_http_info(self, project, domain, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of workflow objects. # noqa: E501 + This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_tasks2_with_http_info(id_org, id_project, id_domain, id_name, async_req=True) + >>> thread = api.list_workflow_ids_with_http_info(project, domain, async_req=True) >>> result = thread.get() :param async_req bool - :param str id_org: Optional, org key applied to the resource. (required) - :param str id_project: Name of the project the resource belongs to. (required) - :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) + :param str project: Name of the project that contains the identifiers. +required (required) + :param str domain: Name of the domain the identifiers belongs to within the project. +required (required) :param int limit: Indicates the number of resources to be returned. +required. - :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. - :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. + :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. :param str sort_by_key: Indicates an attribute to sort the response values. +required. :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :return: AdminTaskList + :param str filters: Indicates a list of filters passed as string. +optional. + :param str org: Optional, org key applied to the resource. + :return: AdminNamedEntityIdentifierList If the method is called asynchronously, returns the request thread. """ - all_params = ['id_org', 'id_project', 'id_domain', 'id_name', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # noqa: E501 + all_params = ['project', 'domain', 'limit', 'token', 'sort_by_key', 'sort_by_direction', 'filters', 'org'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -9368,50 +10867,40 @@ def list_tasks2_with_http_info(self, id_org, id_project, id_domain, id_name, **k if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method list_tasks2" % key + " to method list_workflow_ids" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'id_org' is set - if ('id_org' not in params or - params['id_org'] is None): - raise ValueError("Missing the required parameter `id_org` when calling `list_tasks2`") # noqa: E501 - # verify the required parameter 'id_project' is set - if ('id_project' not in params or - params['id_project'] is None): - raise ValueError("Missing the required parameter `id_project` when calling `list_tasks2`") # noqa: E501 - # verify the required parameter 'id_domain' is set - if ('id_domain' not in params or - params['id_domain'] is None): - raise ValueError("Missing the required parameter `id_domain` when calling `list_tasks2`") # noqa: E501 - # verify the required parameter 'id_name' is set - if ('id_name' not in params or - params['id_name'] is None): - raise ValueError("Missing the required parameter `id_name` when calling `list_tasks2`") # noqa: E501 + # verify the required parameter 'project' is set + if ('project' not in params or + params['project'] is None): + raise ValueError("Missing the required parameter `project` when calling `list_workflow_ids`") # noqa: E501 + # verify the required parameter 'domain' is set + if ('domain' not in params or + params['domain'] is None): + raise ValueError("Missing the required parameter `domain` when calling `list_workflow_ids`") # noqa: E501 collection_formats = {} path_params = {} - if 'id_org' in params: - path_params['id.org'] = params['id_org'] # noqa: E501 - if 'id_project' in params: - path_params['id.project'] = params['id_project'] # noqa: E501 - if 'id_domain' in params: - path_params['id.domain'] = params['id_domain'] # noqa: E501 - if 'id_name' in params: - path_params['id.name'] = params['id_name'] # noqa: E501 + if 'project' in params: + path_params['project'] = params['project'] # noqa: E501 + if 'domain' in params: + path_params['domain'] = params['domain'] # noqa: E501 query_params = [] if 'limit' in params: query_params.append(('limit', params['limit'])) # noqa: E501 if 'token' in params: query_params.append(('token', params['token'])) # noqa: E501 - if 'filters' in params: - query_params.append(('filters', params['filters'])) # noqa: E501 if 'sort_by_key' in params: query_params.append(('sort_by.key', params['sort_by_key'])) # noqa: E501 if 'sort_by_direction' in params: query_params.append(('sort_by.direction', params['sort_by_direction'])) # noqa: E501 + if 'filters' in params: + query_params.append(('filters', params['filters'])) # noqa: E501 + if 'org' in params: + query_params.append(('org', params['org'])) # noqa: E501 header_params = {} @@ -9431,14 +10920,14 @@ def list_tasks2_with_http_info(self, id_org, id_project, id_domain, id_name, **k auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/tasks/org/{id.org}/{id.project}/{id.domain}/{id.name}', 'GET', + '/api/v1/workflow_ids/{project}/{domain}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminTaskList', # noqa: E501 + response_type='AdminNamedEntityIdentifierList', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -9446,59 +10935,57 @@ def list_tasks2_with_http_info(self, id_org, id_project, id_domain, id_name, **k _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def list_tasks3(self, id_project, id_domain, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions. # noqa: E501 + def list_workflow_ids2(self, org, project, domain, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of workflow objects. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_tasks3(id_project, id_domain, async_req=True) + >>> thread = api.list_workflow_ids2(org, project, domain, async_req=True) >>> result = thread.get() :param async_req bool - :param str id_project: Name of the project the resource belongs to. (required) - :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. - :param str id_org: Optional, org key applied to the resource. + :param str org: Optional, org key applied to the resource. (required) + :param str project: Name of the project that contains the identifiers. +required (required) + :param str domain: Name of the domain the identifiers belongs to within the project. +required (required) :param int limit: Indicates the number of resources to be returned. +required. - :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. - :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. + :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. :param str sort_by_key: Indicates an attribute to sort the response values. +required. :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :return: AdminTaskList + :param str filters: Indicates a list of filters passed as string. +optional. + :return: AdminNamedEntityIdentifierList If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.list_tasks3_with_http_info(id_project, id_domain, **kwargs) # noqa: E501 + return self.list_workflow_ids2_with_http_info(org, project, domain, **kwargs) # noqa: E501 else: - (data) = self.list_tasks3_with_http_info(id_project, id_domain, **kwargs) # noqa: E501 + (data) = self.list_workflow_ids2_with_http_info(org, project, domain, **kwargs) # noqa: E501 return data - def list_tasks3_with_http_info(self, id_project, id_domain, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions. # noqa: E501 + def list_workflow_ids2_with_http_info(self, org, project, domain, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of workflow objects. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_tasks3_with_http_info(id_project, id_domain, async_req=True) + >>> thread = api.list_workflow_ids2_with_http_info(org, project, domain, async_req=True) >>> result = thread.get() :param async_req bool - :param str id_project: Name of the project the resource belongs to. (required) - :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. - :param str id_org: Optional, org key applied to the resource. + :param str org: Optional, org key applied to the resource. (required) + :param str project: Name of the project that contains the identifiers. +required (required) + :param str domain: Name of the domain the identifiers belongs to within the project. +required (required) :param int limit: Indicates the number of resources to be returned. +required. - :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. - :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. + :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. :param str sort_by_key: Indicates an attribute to sort the response values. +required. :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :return: AdminTaskList + :param str filters: Indicates a list of filters passed as string. +optional. + :return: AdminNamedEntityIdentifierList If the method is called asynchronously, returns the request thread. """ - all_params = ['id_project', 'id_domain', 'id_name', 'id_org', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # noqa: E501 + all_params = ['org', 'project', 'domain', 'limit', 'token', 'sort_by_key', 'sort_by_direction', 'filters'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -9509,42 +10996,44 @@ def list_tasks3_with_http_info(self, id_project, id_domain, **kwargs): # noqa: if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method list_tasks3" % key + " to method list_workflow_ids2" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'id_project' is set - if ('id_project' not in params or - params['id_project'] is None): - raise ValueError("Missing the required parameter `id_project` when calling `list_tasks3`") # noqa: E501 - # verify the required parameter 'id_domain' is set - if ('id_domain' not in params or - params['id_domain'] is None): - raise ValueError("Missing the required parameter `id_domain` when calling `list_tasks3`") # noqa: E501 + # verify the required parameter 'org' is set + if ('org' not in params or + params['org'] is None): + raise ValueError("Missing the required parameter `org` when calling `list_workflow_ids2`") # noqa: E501 + # verify the required parameter 'project' is set + if ('project' not in params or + params['project'] is None): + raise ValueError("Missing the required parameter `project` when calling `list_workflow_ids2`") # noqa: E501 + # verify the required parameter 'domain' is set + if ('domain' not in params or + params['domain'] is None): + raise ValueError("Missing the required parameter `domain` when calling `list_workflow_ids2`") # noqa: E501 collection_formats = {} path_params = {} - if 'id_project' in params: - path_params['id.project'] = params['id_project'] # noqa: E501 - if 'id_domain' in params: - path_params['id.domain'] = params['id_domain'] # noqa: E501 + if 'org' in params: + path_params['org'] = params['org'] # noqa: E501 + if 'project' in params: + path_params['project'] = params['project'] # noqa: E501 + if 'domain' in params: + path_params['domain'] = params['domain'] # noqa: E501 query_params = [] - if 'id_name' in params: - query_params.append(('id.name', params['id_name'])) # noqa: E501 - if 'id_org' in params: - query_params.append(('id.org', params['id_org'])) # noqa: E501 if 'limit' in params: query_params.append(('limit', params['limit'])) # noqa: E501 if 'token' in params: query_params.append(('token', params['token'])) # noqa: E501 - if 'filters' in params: - query_params.append(('filters', params['filters'])) # noqa: E501 if 'sort_by_key' in params: query_params.append(('sort_by.key', params['sort_by_key'])) # noqa: E501 if 'sort_by_direction' in params: query_params.append(('sort_by.direction', params['sort_by_direction'])) # noqa: E501 + if 'filters' in params: + query_params.append(('filters', params['filters'])) # noqa: E501 header_params = {} @@ -9564,14 +11053,14 @@ def list_tasks3_with_http_info(self, id_project, id_domain, **kwargs): # noqa: auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/tasks/{id.project}/{id.domain}', 'GET', + '/api/v1/workflows/org/{org}/{project}/{domain}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminTaskList', # noqa: E501 + response_type='AdminNamedEntityIdentifierList', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -9579,59 +11068,59 @@ def list_tasks3_with_http_info(self, id_project, id_domain, **kwargs): # noqa: _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def list_tasks4(self, id_org, id_project, id_domain, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions. # noqa: E501 + def list_workflows(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_tasks4(id_org, id_project, id_domain, async_req=True) + >>> thread = api.list_workflows(id_project, id_domain, id_name, async_req=True) >>> result = thread.get() :param async_req bool - :param str id_org: Optional, org key applied to the resource. (required) :param str id_project: Name of the project the resource belongs to. (required) :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. + :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) + :param str id_org: Optional, org key applied to the resource. :param int limit: Indicates the number of resources to be returned. +required. :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. :param str sort_by_key: Indicates an attribute to sort the response values. +required. :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :return: AdminTaskList + :return: AdminWorkflowList If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.list_tasks4_with_http_info(id_org, id_project, id_domain, **kwargs) # noqa: E501 + return self.list_workflows_with_http_info(id_project, id_domain, id_name, **kwargs) # noqa: E501 else: - (data) = self.list_tasks4_with_http_info(id_org, id_project, id_domain, **kwargs) # noqa: E501 + (data) = self.list_workflows_with_http_info(id_project, id_domain, id_name, **kwargs) # noqa: E501 return data - def list_tasks4_with_http_info(self, id_org, id_project, id_domain, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions. # noqa: E501 + def list_workflows_with_http_info(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_tasks4_with_http_info(id_org, id_project, id_domain, async_req=True) + >>> thread = api.list_workflows_with_http_info(id_project, id_domain, id_name, async_req=True) >>> result = thread.get() :param async_req bool - :param str id_org: Optional, org key applied to the resource. (required) :param str id_project: Name of the project the resource belongs to. (required) :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. + :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) + :param str id_org: Optional, org key applied to the resource. :param int limit: Indicates the number of resources to be returned. +required. :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. :param str sort_by_key: Indicates an attribute to sort the response values. +required. :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :return: AdminTaskList + :return: AdminWorkflowList If the method is called asynchronously, returns the request thread. """ - all_params = ['id_org', 'id_project', 'id_domain', 'id_name', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # noqa: E501 + all_params = ['id_project', 'id_domain', 'id_name', 'id_org', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -9642,36 +11131,36 @@ def list_tasks4_with_http_info(self, id_org, id_project, id_domain, **kwargs): if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method list_tasks4" % key + " to method list_workflows" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'id_org' is set - if ('id_org' not in params or - params['id_org'] is None): - raise ValueError("Missing the required parameter `id_org` when calling `list_tasks4`") # noqa: E501 # verify the required parameter 'id_project' is set if ('id_project' not in params or params['id_project'] is None): - raise ValueError("Missing the required parameter `id_project` when calling `list_tasks4`") # noqa: E501 + raise ValueError("Missing the required parameter `id_project` when calling `list_workflows`") # noqa: E501 # verify the required parameter 'id_domain' is set if ('id_domain' not in params or params['id_domain'] is None): - raise ValueError("Missing the required parameter `id_domain` when calling `list_tasks4`") # noqa: E501 + raise ValueError("Missing the required parameter `id_domain` when calling `list_workflows`") # noqa: E501 + # verify the required parameter 'id_name' is set + if ('id_name' not in params or + params['id_name'] is None): + raise ValueError("Missing the required parameter `id_name` when calling `list_workflows`") # noqa: E501 collection_formats = {} path_params = {} - if 'id_org' in params: - path_params['id.org'] = params['id_org'] # noqa: E501 if 'id_project' in params: path_params['id.project'] = params['id_project'] # noqa: E501 if 'id_domain' in params: path_params['id.domain'] = params['id_domain'] # noqa: E501 + if 'id_name' in params: + path_params['id.name'] = params['id_name'] # noqa: E501 query_params = [] - if 'id_name' in params: - query_params.append(('id.name', params['id_name'])) # noqa: E501 + if 'id_org' in params: + query_params.append(('id.org', params['id_org'])) # noqa: E501 if 'limit' in params: query_params.append(('limit', params['limit'])) # noqa: E501 if 'token' in params: @@ -9701,14 +11190,14 @@ def list_tasks4_with_http_info(self, id_org, id_project, id_domain, **kwargs): auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/tasks/org/{id.org}/{id.project}/{id.domain}', 'GET', + '/api/v1/workflows/{id.project}/{id.domain}/{id.name}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminTaskList', # noqa: E501 + response_type='AdminWorkflowList', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -9716,57 +11205,59 @@ def list_tasks4_with_http_info(self, id_org, id_project, id_domain, **kwargs): _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def list_workflow_ids(self, project, domain, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of workflow objects. # noqa: E501 + def list_workflows2(self, id_org, id_project, id_domain, id_name, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_workflow_ids(project, domain, async_req=True) + >>> thread = api.list_workflows2(id_org, id_project, id_domain, id_name, async_req=True) >>> result = thread.get() :param async_req bool - :param str project: Name of the project that contains the identifiers. +required (required) - :param str domain: Name of the domain the identifiers belongs to within the project. +required (required) + :param str id_org: Optional, org key applied to the resource. (required) + :param str id_project: Name of the project the resource belongs to. (required) + :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) :param int limit: Indicates the number of resources to be returned. +required. - :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. + :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. + :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. :param str sort_by_key: Indicates an attribute to sort the response values. +required. :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :param str filters: Indicates a list of filters passed as string. +optional. - :param str org: Optional, org key applied to the resource. - :return: AdminNamedEntityIdentifierList + :return: AdminWorkflowList If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.list_workflow_ids_with_http_info(project, domain, **kwargs) # noqa: E501 + return self.list_workflows2_with_http_info(id_org, id_project, id_domain, id_name, **kwargs) # noqa: E501 else: - (data) = self.list_workflow_ids_with_http_info(project, domain, **kwargs) # noqa: E501 + (data) = self.list_workflows2_with_http_info(id_org, id_project, id_domain, id_name, **kwargs) # noqa: E501 return data - def list_workflow_ids_with_http_info(self, project, domain, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of workflow objects. # noqa: E501 + def list_workflows2_with_http_info(self, id_org, id_project, id_domain, id_name, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_workflow_ids_with_http_info(project, domain, async_req=True) + >>> thread = api.list_workflows2_with_http_info(id_org, id_project, id_domain, id_name, async_req=True) >>> result = thread.get() :param async_req bool - :param str project: Name of the project that contains the identifiers. +required (required) - :param str domain: Name of the domain the identifiers belongs to within the project. +required (required) + :param str id_org: Optional, org key applied to the resource. (required) + :param str id_project: Name of the project the resource belongs to. (required) + :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) :param int limit: Indicates the number of resources to be returned. +required. - :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. + :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. + :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. :param str sort_by_key: Indicates an attribute to sort the response values. +required. :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :param str filters: Indicates a list of filters passed as string. +optional. - :param str org: Optional, org key applied to the resource. - :return: AdminNamedEntityIdentifierList + :return: AdminWorkflowList If the method is called asynchronously, returns the request thread. """ - all_params = ['project', 'domain', 'limit', 'token', 'sort_by_key', 'sort_by_direction', 'filters', 'org'] # noqa: E501 + all_params = ['id_org', 'id_project', 'id_domain', 'id_name', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -9777,40 +11268,50 @@ def list_workflow_ids_with_http_info(self, project, domain, **kwargs): # noqa: if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method list_workflow_ids" % key + " to method list_workflows2" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'project' is set - if ('project' not in params or - params['project'] is None): - raise ValueError("Missing the required parameter `project` when calling `list_workflow_ids`") # noqa: E501 - # verify the required parameter 'domain' is set - if ('domain' not in params or - params['domain'] is None): - raise ValueError("Missing the required parameter `domain` when calling `list_workflow_ids`") # noqa: E501 + # verify the required parameter 'id_org' is set + if ('id_org' not in params or + params['id_org'] is None): + raise ValueError("Missing the required parameter `id_org` when calling `list_workflows2`") # noqa: E501 + # verify the required parameter 'id_project' is set + if ('id_project' not in params or + params['id_project'] is None): + raise ValueError("Missing the required parameter `id_project` when calling `list_workflows2`") # noqa: E501 + # verify the required parameter 'id_domain' is set + if ('id_domain' not in params or + params['id_domain'] is None): + raise ValueError("Missing the required parameter `id_domain` when calling `list_workflows2`") # noqa: E501 + # verify the required parameter 'id_name' is set + if ('id_name' not in params or + params['id_name'] is None): + raise ValueError("Missing the required parameter `id_name` when calling `list_workflows2`") # noqa: E501 collection_formats = {} path_params = {} - if 'project' in params: - path_params['project'] = params['project'] # noqa: E501 - if 'domain' in params: - path_params['domain'] = params['domain'] # noqa: E501 + if 'id_org' in params: + path_params['id.org'] = params['id_org'] # noqa: E501 + if 'id_project' in params: + path_params['id.project'] = params['id_project'] # noqa: E501 + if 'id_domain' in params: + path_params['id.domain'] = params['id_domain'] # noqa: E501 + if 'id_name' in params: + path_params['id.name'] = params['id_name'] # noqa: E501 query_params = [] if 'limit' in params: query_params.append(('limit', params['limit'])) # noqa: E501 if 'token' in params: query_params.append(('token', params['token'])) # noqa: E501 + if 'filters' in params: + query_params.append(('filters', params['filters'])) # noqa: E501 if 'sort_by_key' in params: query_params.append(('sort_by.key', params['sort_by_key'])) # noqa: E501 if 'sort_by_direction' in params: query_params.append(('sort_by.direction', params['sort_by_direction'])) # noqa: E501 - if 'filters' in params: - query_params.append(('filters', params['filters'])) # noqa: E501 - if 'org' in params: - query_params.append(('org', params['org'])) # noqa: E501 header_params = {} @@ -9830,14 +11331,14 @@ def list_workflow_ids_with_http_info(self, project, domain, **kwargs): # noqa: auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/workflow_ids/{project}/{domain}', 'GET', + '/api/v1/workflows/org/{id.org}/{id.project}/{id.domain}/{id.name}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminNamedEntityIdentifierList', # noqa: E501 + response_type='AdminWorkflowList', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -9845,57 +11346,59 @@ def list_workflow_ids_with_http_info(self, project, domain, **kwargs): # noqa: _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def list_workflow_ids2(self, org, project, domain, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of workflow objects. # noqa: E501 + def list_workflows3(self, id_project, id_domain, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_workflow_ids2(org, project, domain, async_req=True) + >>> thread = api.list_workflows3(id_project, id_domain, async_req=True) >>> result = thread.get() :param async_req bool - :param str org: Optional, org key applied to the resource. (required) - :param str project: Name of the project that contains the identifiers. +required (required) - :param str domain: Name of the domain the identifiers belongs to within the project. +required (required) + :param str id_project: Name of the project the resource belongs to. (required) + :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. + :param str id_org: Optional, org key applied to the resource. :param int limit: Indicates the number of resources to be returned. +required. - :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. + :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. + :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. :param str sort_by_key: Indicates an attribute to sort the response values. +required. :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :param str filters: Indicates a list of filters passed as string. +optional. - :return: AdminNamedEntityIdentifierList + :return: AdminWorkflowList If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.list_workflow_ids2_with_http_info(org, project, domain, **kwargs) # noqa: E501 + return self.list_workflows3_with_http_info(id_project, id_domain, **kwargs) # noqa: E501 else: - (data) = self.list_workflow_ids2_with_http_info(org, project, domain, **kwargs) # noqa: E501 + (data) = self.list_workflows3_with_http_info(id_project, id_domain, **kwargs) # noqa: E501 return data - def list_workflow_ids2_with_http_info(self, org, project, domain, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of workflow objects. # noqa: E501 + def list_workflows3_with_http_info(self, id_project, id_domain, **kwargs): # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_workflow_ids2_with_http_info(org, project, domain, async_req=True) + >>> thread = api.list_workflows3_with_http_info(id_project, id_domain, async_req=True) >>> result = thread.get() :param async_req bool - :param str org: Optional, org key applied to the resource. (required) - :param str project: Name of the project that contains the identifiers. +required (required) - :param str domain: Name of the domain the identifiers belongs to within the project. +required (required) + :param str id_project: Name of the project the resource belongs to. (required) + :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. + :param str id_org: Optional, org key applied to the resource. :param int limit: Indicates the number of resources to be returned. +required. - :param str token: In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional. + :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. + :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. :param str sort_by_key: Indicates an attribute to sort the response values. +required. :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :param str filters: Indicates a list of filters passed as string. +optional. - :return: AdminNamedEntityIdentifierList + :return: AdminWorkflowList If the method is called asynchronously, returns the request thread. """ - all_params = ['org', 'project', 'domain', 'limit', 'token', 'sort_by_key', 'sort_by_direction', 'filters'] # noqa: E501 + all_params = ['id_project', 'id_domain', 'id_name', 'id_org', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -9906,44 +11409,42 @@ def list_workflow_ids2_with_http_info(self, org, project, domain, **kwargs): # if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method list_workflow_ids2" % key + " to method list_workflows3" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'org' is set - if ('org' not in params or - params['org'] is None): - raise ValueError("Missing the required parameter `org` when calling `list_workflow_ids2`") # noqa: E501 - # verify the required parameter 'project' is set - if ('project' not in params or - params['project'] is None): - raise ValueError("Missing the required parameter `project` when calling `list_workflow_ids2`") # noqa: E501 - # verify the required parameter 'domain' is set - if ('domain' not in params or - params['domain'] is None): - raise ValueError("Missing the required parameter `domain` when calling `list_workflow_ids2`") # noqa: E501 + # verify the required parameter 'id_project' is set + if ('id_project' not in params or + params['id_project'] is None): + raise ValueError("Missing the required parameter `id_project` when calling `list_workflows3`") # noqa: E501 + # verify the required parameter 'id_domain' is set + if ('id_domain' not in params or + params['id_domain'] is None): + raise ValueError("Missing the required parameter `id_domain` when calling `list_workflows3`") # noqa: E501 collection_formats = {} path_params = {} - if 'org' in params: - path_params['org'] = params['org'] # noqa: E501 - if 'project' in params: - path_params['project'] = params['project'] # noqa: E501 - if 'domain' in params: - path_params['domain'] = params['domain'] # noqa: E501 + if 'id_project' in params: + path_params['id.project'] = params['id_project'] # noqa: E501 + if 'id_domain' in params: + path_params['id.domain'] = params['id_domain'] # noqa: E501 query_params = [] + if 'id_name' in params: + query_params.append(('id.name', params['id_name'])) # noqa: E501 + if 'id_org' in params: + query_params.append(('id.org', params['id_org'])) # noqa: E501 if 'limit' in params: query_params.append(('limit', params['limit'])) # noqa: E501 if 'token' in params: query_params.append(('token', params['token'])) # noqa: E501 + if 'filters' in params: + query_params.append(('filters', params['filters'])) # noqa: E501 if 'sort_by_key' in params: query_params.append(('sort_by.key', params['sort_by_key'])) # noqa: E501 if 'sort_by_direction' in params: query_params.append(('sort_by.direction', params['sort_by_direction'])) # noqa: E501 - if 'filters' in params: - query_params.append(('filters', params['filters'])) # noqa: E501 header_params = {} @@ -9963,14 +11464,14 @@ def list_workflow_ids2_with_http_info(self, org, project, domain, **kwargs): # auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/workflows/org/{org}/{project}/{domain}', 'GET', + '/api/v1/workflows/{id.project}/{id.domain}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminNamedEntityIdentifierList', # noqa: E501 + response_type='AdminWorkflowList', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -9978,19 +11479,19 @@ def list_workflow_ids2_with_http_info(self, org, project, domain, **kwargs): # _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def list_workflows(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 + def list_workflows4(self, id_org, id_project, id_domain, **kwargs): # noqa: E501 """Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_workflows(id_project, id_domain, id_name, async_req=True) + >>> thread = api.list_workflows4(id_org, id_project, id_domain, async_req=True) >>> result = thread.get() :param async_req bool + :param str id_org: Optional, org key applied to the resource. (required) :param str id_project: Name of the project the resource belongs to. (required) :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) - :param str id_org: Optional, org key applied to the resource. + :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. :param int limit: Indicates the number of resources to be returned. +required. :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. @@ -10002,24 +11503,24 @@ def list_workflows(self, id_project, id_domain, id_name, **kwargs): # noqa: E50 """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.list_workflows_with_http_info(id_project, id_domain, id_name, **kwargs) # noqa: E501 + return self.list_workflows4_with_http_info(id_org, id_project, id_domain, **kwargs) # noqa: E501 else: - (data) = self.list_workflows_with_http_info(id_project, id_domain, id_name, **kwargs) # noqa: E501 + (data) = self.list_workflows4_with_http_info(id_org, id_project, id_domain, **kwargs) # noqa: E501 return data - def list_workflows_with_http_info(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 + def list_workflows4_with_http_info(self, id_org, id_project, id_domain, **kwargs): # noqa: E501 """Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_workflows_with_http_info(id_project, id_domain, id_name, async_req=True) + >>> thread = api.list_workflows4_with_http_info(id_org, id_project, id_domain, async_req=True) >>> result = thread.get() :param async_req bool + :param str id_org: Optional, org key applied to the resource. (required) :param str id_project: Name of the project the resource belongs to. (required) :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) - :param str id_org: Optional, org key applied to the resource. + :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. :param int limit: Indicates the number of resources to be returned. +required. :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. @@ -10030,7 +11531,7 @@ def list_workflows_with_http_info(self, id_project, id_domain, id_name, **kwargs returns the request thread. """ - all_params = ['id_project', 'id_domain', 'id_name', 'id_org', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # noqa: E501 + all_params = ['id_org', 'id_project', 'id_domain', 'id_name', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -10041,36 +11542,36 @@ def list_workflows_with_http_info(self, id_project, id_domain, id_name, **kwargs if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method list_workflows" % key + " to method list_workflows4" % key ) params[key] = val del params['kwargs'] + # verify the required parameter 'id_org' is set + if ('id_org' not in params or + params['id_org'] is None): + raise ValueError("Missing the required parameter `id_org` when calling `list_workflows4`") # noqa: E501 # verify the required parameter 'id_project' is set if ('id_project' not in params or params['id_project'] is None): - raise ValueError("Missing the required parameter `id_project` when calling `list_workflows`") # noqa: E501 + raise ValueError("Missing the required parameter `id_project` when calling `list_workflows4`") # noqa: E501 # verify the required parameter 'id_domain' is set if ('id_domain' not in params or params['id_domain'] is None): - raise ValueError("Missing the required parameter `id_domain` when calling `list_workflows`") # noqa: E501 - # verify the required parameter 'id_name' is set - if ('id_name' not in params or - params['id_name'] is None): - raise ValueError("Missing the required parameter `id_name` when calling `list_workflows`") # noqa: E501 + raise ValueError("Missing the required parameter `id_domain` when calling `list_workflows4`") # noqa: E501 collection_formats = {} path_params = {} + if 'id_org' in params: + path_params['id.org'] = params['id_org'] # noqa: E501 if 'id_project' in params: path_params['id.project'] = params['id_project'] # noqa: E501 if 'id_domain' in params: path_params['id.domain'] = params['id_domain'] # noqa: E501 - if 'id_name' in params: - path_params['id.name'] = params['id_name'] # noqa: E501 query_params = [] - if 'id_org' in params: - query_params.append(('id.org', params['id_org'])) # noqa: E501 + if 'id_name' in params: + query_params.append(('id.name', params['id_name'])) # noqa: E501 if 'limit' in params: query_params.append(('limit', params['limit'])) # noqa: E501 if 'token' in params: @@ -10100,7 +11601,7 @@ def list_workflows_with_http_info(self, id_project, id_domain, id_name, **kwargs auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/workflows/{id.project}/{id.domain}/{id.name}', 'GET', + '/api/v1/workflows/org/{id.org}/{id.project}/{id.domain}', 'GET', path_params, query_params, header_params, @@ -10115,59 +11616,43 @@ def list_workflows_with_http_info(self, id_project, id_domain, id_name, **kwargs _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def list_workflows2(self, id_org, id_project, id_domain, id_name, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. # noqa: E501 + def recover_execution(self, body, **kwargs): # noqa: E501 + """Recreates a previously-run workflow execution that will only start executing from the last known failure point. In Recover mode, users cannot change any input parameters or update the version of the execution. This is extremely useful to recover from system errors and byzantine faults like - Loss of K8s cluster, bugs in platform or instability, machine failures, downstream system failures (downstream services), or simply to recover executions that failed because of retry exhaustion and should complete if tried again. See :ref:`ref_flyteidl.admin.ExecutionRecoverRequest` for more details. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_workflows2(id_org, id_project, id_domain, id_name, async_req=True) + >>> thread = api.recover_execution(body, async_req=True) >>> result = thread.get() :param async_req bool - :param str id_org: Optional, org key applied to the resource. (required) - :param str id_project: Name of the project the resource belongs to. (required) - :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) - :param int limit: Indicates the number of resources to be returned. +required. - :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. - :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. - :param str sort_by_key: Indicates an attribute to sort the response values. +required. - :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :return: AdminWorkflowList + :param AdminExecutionRecoverRequest body: (required) + :return: AdminExecutionCreateResponse If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.list_workflows2_with_http_info(id_org, id_project, id_domain, id_name, **kwargs) # noqa: E501 + return self.recover_execution_with_http_info(body, **kwargs) # noqa: E501 else: - (data) = self.list_workflows2_with_http_info(id_org, id_project, id_domain, id_name, **kwargs) # noqa: E501 + (data) = self.recover_execution_with_http_info(body, **kwargs) # noqa: E501 return data - def list_workflows2_with_http_info(self, id_org, id_project, id_domain, id_name, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. # noqa: E501 + def recover_execution_with_http_info(self, body, **kwargs): # noqa: E501 + """Recreates a previously-run workflow execution that will only start executing from the last known failure point. In Recover mode, users cannot change any input parameters or update the version of the execution. This is extremely useful to recover from system errors and byzantine faults like - Loss of K8s cluster, bugs in platform or instability, machine failures, downstream system failures (downstream services), or simply to recover executions that failed because of retry exhaustion and should complete if tried again. See :ref:`ref_flyteidl.admin.ExecutionRecoverRequest` for more details. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_workflows2_with_http_info(id_org, id_project, id_domain, id_name, async_req=True) + >>> thread = api.recover_execution_with_http_info(body, async_req=True) >>> result = thread.get() :param async_req bool - :param str id_org: Optional, org key applied to the resource. (required) - :param str id_project: Name of the project the resource belongs to. (required) - :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans' (required) - :param int limit: Indicates the number of resources to be returned. +required. - :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. - :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. - :param str sort_by_key: Indicates an attribute to sort the response values. +required. - :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :return: AdminWorkflowList + :param AdminExecutionRecoverRequest body: (required) + :return: AdminExecutionCreateResponse If the method is called asynchronously, returns the request thread. """ - all_params = ['id_org', 'id_project', 'id_domain', 'id_name', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # noqa: E501 + all_params = ['body'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -10178,50 +11663,20 @@ def list_workflows2_with_http_info(self, id_org, id_project, id_domain, id_name, if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method list_workflows2" % key + " to method recover_execution" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'id_org' is set - if ('id_org' not in params or - params['id_org'] is None): - raise ValueError("Missing the required parameter `id_org` when calling `list_workflows2`") # noqa: E501 - # verify the required parameter 'id_project' is set - if ('id_project' not in params or - params['id_project'] is None): - raise ValueError("Missing the required parameter `id_project` when calling `list_workflows2`") # noqa: E501 - # verify the required parameter 'id_domain' is set - if ('id_domain' not in params or - params['id_domain'] is None): - raise ValueError("Missing the required parameter `id_domain` when calling `list_workflows2`") # noqa: E501 - # verify the required parameter 'id_name' is set - if ('id_name' not in params or - params['id_name'] is None): - raise ValueError("Missing the required parameter `id_name` when calling `list_workflows2`") # noqa: E501 - - collection_formats = {} - - path_params = {} - if 'id_org' in params: - path_params['id.org'] = params['id_org'] # noqa: E501 - if 'id_project' in params: - path_params['id.project'] = params['id_project'] # noqa: E501 - if 'id_domain' in params: - path_params['id.domain'] = params['id_domain'] # noqa: E501 - if 'id_name' in params: - path_params['id.name'] = params['id_name'] # noqa: E501 + # verify the required parameter 'body' is set + if ('body' not in params or + params['body'] is None): + raise ValueError("Missing the required parameter `body` when calling `recover_execution`") # noqa: E501 + + collection_formats = {} + + path_params = {} query_params = [] - if 'limit' in params: - query_params.append(('limit', params['limit'])) # noqa: E501 - if 'token' in params: - query_params.append(('token', params['token'])) # noqa: E501 - if 'filters' in params: - query_params.append(('filters', params['filters'])) # noqa: E501 - if 'sort_by_key' in params: - query_params.append(('sort_by.key', params['sort_by_key'])) # noqa: E501 - if 'sort_by_direction' in params: - query_params.append(('sort_by.direction', params['sort_by_direction'])) # noqa: E501 header_params = {} @@ -10229,6 +11684,8 @@ def list_workflows2_with_http_info(self, id_org, id_project, id_domain, id_name, local_var_files = {} body_params = None + if 'body' in params: + body_params = params['body'] # HTTP header `Accept` header_params['Accept'] = self.api_client.select_header_accept( ['application/json']) # noqa: E501 @@ -10241,14 +11698,14 @@ def list_workflows2_with_http_info(self, id_org, id_project, id_domain, id_name, auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/workflows/org/{id.org}/{id.project}/{id.domain}/{id.name}', 'GET', + '/api/v1/executions/recover', 'POST', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminWorkflowList', # noqa: E501 + response_type='AdminExecutionCreateResponse', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -10256,59 +11713,45 @@ def list_workflows2_with_http_info(self, id_org, id_project, id_domain, id_name, _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def list_workflows3(self, id_project, id_domain, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. # noqa: E501 + def recover_execution2(self, id_org, body, **kwargs): # noqa: E501 + """Recreates a previously-run workflow execution that will only start executing from the last known failure point. In Recover mode, users cannot change any input parameters or update the version of the execution. This is extremely useful to recover from system errors and byzantine faults like - Loss of K8s cluster, bugs in platform or instability, machine failures, downstream system failures (downstream services), or simply to recover executions that failed because of retry exhaustion and should complete if tried again. See :ref:`ref_flyteidl.admin.ExecutionRecoverRequest` for more details. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_workflows3(id_project, id_domain, async_req=True) + >>> thread = api.recover_execution2(id_org, body, async_req=True) >>> result = thread.get() :param async_req bool - :param str id_project: Name of the project the resource belongs to. (required) - :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. - :param str id_org: Optional, org key applied to the resource. - :param int limit: Indicates the number of resources to be returned. +required. - :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. - :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. - :param str sort_by_key: Indicates an attribute to sort the response values. +required. - :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :return: AdminWorkflowList + :param str id_org: Optional, org key applied to the resource. (required) + :param AdminExecutionRecoverRequest body: (required) + :return: AdminExecutionCreateResponse If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.list_workflows3_with_http_info(id_project, id_domain, **kwargs) # noqa: E501 + return self.recover_execution2_with_http_info(id_org, body, **kwargs) # noqa: E501 else: - (data) = self.list_workflows3_with_http_info(id_project, id_domain, **kwargs) # noqa: E501 + (data) = self.recover_execution2_with_http_info(id_org, body, **kwargs) # noqa: E501 return data - def list_workflows3_with_http_info(self, id_project, id_domain, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. # noqa: E501 + def recover_execution2_with_http_info(self, id_org, body, **kwargs): # noqa: E501 + """Recreates a previously-run workflow execution that will only start executing from the last known failure point. In Recover mode, users cannot change any input parameters or update the version of the execution. This is extremely useful to recover from system errors and byzantine faults like - Loss of K8s cluster, bugs in platform or instability, machine failures, downstream system failures (downstream services), or simply to recover executions that failed because of retry exhaustion and should complete if tried again. See :ref:`ref_flyteidl.admin.ExecutionRecoverRequest` for more details. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_workflows3_with_http_info(id_project, id_domain, async_req=True) + >>> thread = api.recover_execution2_with_http_info(id_org, body, async_req=True) >>> result = thread.get() :param async_req bool - :param str id_project: Name of the project the resource belongs to. (required) - :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. - :param str id_org: Optional, org key applied to the resource. - :param int limit: Indicates the number of resources to be returned. +required. - :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. - :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. - :param str sort_by_key: Indicates an attribute to sort the response values. +required. - :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :return: AdminWorkflowList + :param str id_org: Optional, org key applied to the resource. (required) + :param AdminExecutionRecoverRequest body: (required) + :return: AdminExecutionCreateResponse If the method is called asynchronously, returns the request thread. """ - all_params = ['id_project', 'id_domain', 'id_name', 'id_org', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # noqa: E501 + all_params = ['id_org', 'body'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -10319,42 +11762,26 @@ def list_workflows3_with_http_info(self, id_project, id_domain, **kwargs): # no if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method list_workflows3" % key + " to method recover_execution2" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'id_project' is set - if ('id_project' not in params or - params['id_project'] is None): - raise ValueError("Missing the required parameter `id_project` when calling `list_workflows3`") # noqa: E501 - # verify the required parameter 'id_domain' is set - if ('id_domain' not in params or - params['id_domain'] is None): - raise ValueError("Missing the required parameter `id_domain` when calling `list_workflows3`") # noqa: E501 + # verify the required parameter 'id_org' is set + if ('id_org' not in params or + params['id_org'] is None): + raise ValueError("Missing the required parameter `id_org` when calling `recover_execution2`") # noqa: E501 + # verify the required parameter 'body' is set + if ('body' not in params or + params['body'] is None): + raise ValueError("Missing the required parameter `body` when calling `recover_execution2`") # noqa: E501 collection_formats = {} path_params = {} - if 'id_project' in params: - path_params['id.project'] = params['id_project'] # noqa: E501 - if 'id_domain' in params: - path_params['id.domain'] = params['id_domain'] # noqa: E501 + if 'id_org' in params: + path_params['id.org'] = params['id_org'] # noqa: E501 query_params = [] - if 'id_name' in params: - query_params.append(('id.name', params['id_name'])) # noqa: E501 - if 'id_org' in params: - query_params.append(('id.org', params['id_org'])) # noqa: E501 - if 'limit' in params: - query_params.append(('limit', params['limit'])) # noqa: E501 - if 'token' in params: - query_params.append(('token', params['token'])) # noqa: E501 - if 'filters' in params: - query_params.append(('filters', params['filters'])) # noqa: E501 - if 'sort_by_key' in params: - query_params.append(('sort_by.key', params['sort_by_key'])) # noqa: E501 - if 'sort_by_direction' in params: - query_params.append(('sort_by.direction', params['sort_by_direction'])) # noqa: E501 header_params = {} @@ -10362,6 +11789,8 @@ def list_workflows3_with_http_info(self, id_project, id_domain, **kwargs): # no local_var_files = {} body_params = None + if 'body' in params: + body_params = params['body'] # HTTP header `Accept` header_params['Accept'] = self.api_client.select_header_accept( ['application/json']) # noqa: E501 @@ -10374,14 +11803,14 @@ def list_workflows3_with_http_info(self, id_project, id_domain, **kwargs): # no auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/workflows/{id.project}/{id.domain}', 'GET', + '/api/v1/executions/org/{id.org}/recover', 'POST', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminWorkflowList', # noqa: E501 + response_type='AdminExecutionCreateResponse', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -10389,59 +11818,43 @@ def list_workflows3_with_http_info(self, id_project, id_domain, **kwargs): # no _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def list_workflows4(self, id_org, id_project, id_domain, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. # noqa: E501 + def register_project(self, body, **kwargs): # noqa: E501 + """Registers a :ref:`ref_flyteidl.admin.Project` with the Flyte deployment. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_workflows4(id_org, id_project, id_domain, async_req=True) + >>> thread = api.register_project(body, async_req=True) >>> result = thread.get() :param async_req bool - :param str id_org: Optional, org key applied to the resource. (required) - :param str id_project: Name of the project the resource belongs to. (required) - :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. - :param int limit: Indicates the number of resources to be returned. +required. - :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. - :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. - :param str sort_by_key: Indicates an attribute to sort the response values. +required. - :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :return: AdminWorkflowList + :param AdminProjectRegisterRequest body: (required) + :return: AdminProjectRegisterResponse If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.list_workflows4_with_http_info(id_org, id_project, id_domain, **kwargs) # noqa: E501 + return self.register_project_with_http_info(body, **kwargs) # noqa: E501 else: - (data) = self.list_workflows4_with_http_info(id_org, id_project, id_domain, **kwargs) # noqa: E501 + (data) = self.register_project_with_http_info(body, **kwargs) # noqa: E501 return data - def list_workflows4_with_http_info(self, id_org, id_project, id_domain, **kwargs): # noqa: E501 - """Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. # noqa: E501 + def register_project_with_http_info(self, body, **kwargs): # noqa: E501 + """Registers a :ref:`ref_flyteidl.admin.Project` with the Flyte deployment. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.list_workflows4_with_http_info(id_org, id_project, id_domain, async_req=True) + >>> thread = api.register_project_with_http_info(body, async_req=True) >>> result = thread.get() :param async_req bool - :param str id_org: Optional, org key applied to the resource. (required) - :param str id_project: Name of the project the resource belongs to. (required) - :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) - :param str id_name: User provided value for the resource. The combination of project + domain + name uniquely identifies the resource. +optional - in certain contexts - like 'List API', 'Launch plans'. - :param int limit: Indicates the number of resources to be returned. +required. - :param str token: In the case of multiple pages of results, this server-provided token can be used to fetch the next page in a query. +optional. - :param str filters: Indicates a list of filters passed as string. More info on constructing filters : +optional. - :param str sort_by_key: Indicates an attribute to sort the response values. +required. - :param str sort_by_direction: Indicates the direction to apply sort key for response values. +optional. - DESCENDING: By default, fields are sorted in descending order. - :return: AdminWorkflowList + :param AdminProjectRegisterRequest body: (required) + :return: AdminProjectRegisterResponse If the method is called asynchronously, returns the request thread. """ - all_params = ['id_org', 'id_project', 'id_domain', 'id_name', 'limit', 'token', 'filters', 'sort_by_key', 'sort_by_direction'] # noqa: E501 + all_params = ['body'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -10452,46 +11865,20 @@ def list_workflows4_with_http_info(self, id_org, id_project, id_domain, **kwargs if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method list_workflows4" % key + " to method register_project" % key ) params[key] = val del params['kwargs'] - # verify the required parameter 'id_org' is set - if ('id_org' not in params or - params['id_org'] is None): - raise ValueError("Missing the required parameter `id_org` when calling `list_workflows4`") # noqa: E501 - # verify the required parameter 'id_project' is set - if ('id_project' not in params or - params['id_project'] is None): - raise ValueError("Missing the required parameter `id_project` when calling `list_workflows4`") # noqa: E501 - # verify the required parameter 'id_domain' is set - if ('id_domain' not in params or - params['id_domain'] is None): - raise ValueError("Missing the required parameter `id_domain` when calling `list_workflows4`") # noqa: E501 + # verify the required parameter 'body' is set + if ('body' not in params or + params['body'] is None): + raise ValueError("Missing the required parameter `body` when calling `register_project`") # noqa: E501 collection_formats = {} path_params = {} - if 'id_org' in params: - path_params['id.org'] = params['id_org'] # noqa: E501 - if 'id_project' in params: - path_params['id.project'] = params['id_project'] # noqa: E501 - if 'id_domain' in params: - path_params['id.domain'] = params['id_domain'] # noqa: E501 query_params = [] - if 'id_name' in params: - query_params.append(('id.name', params['id_name'])) # noqa: E501 - if 'limit' in params: - query_params.append(('limit', params['limit'])) # noqa: E501 - if 'token' in params: - query_params.append(('token', params['token'])) # noqa: E501 - if 'filters' in params: - query_params.append(('filters', params['filters'])) # noqa: E501 - if 'sort_by_key' in params: - query_params.append(('sort_by.key', params['sort_by_key'])) # noqa: E501 - if 'sort_by_direction' in params: - query_params.append(('sort_by.direction', params['sort_by_direction'])) # noqa: E501 header_params = {} @@ -10499,6 +11886,8 @@ def list_workflows4_with_http_info(self, id_org, id_project, id_domain, **kwargs local_var_files = {} body_params = None + if 'body' in params: + body_params = params['body'] # HTTP header `Accept` header_params['Accept'] = self.api_client.select_header_accept( ['application/json']) # noqa: E501 @@ -10511,14 +11900,14 @@ def list_workflows4_with_http_info(self, id_org, id_project, id_domain, **kwargs auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/workflows/org/{id.org}/{id.project}/{id.domain}', 'GET', + '/api/v1/projects', 'POST', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminWorkflowList', # noqa: E501 + response_type='AdminProjectRegisterResponse', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -10526,43 +11915,45 @@ def list_workflows4_with_http_info(self, id_org, id_project, id_domain, **kwargs _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def recover_execution(self, body, **kwargs): # noqa: E501 - """Recreates a previously-run workflow execution that will only start executing from the last known failure point. In Recover mode, users cannot change any input parameters or update the version of the execution. This is extremely useful to recover from system errors and byzantine faults like - Loss of K8s cluster, bugs in platform or instability, machine failures, downstream system failures (downstream services), or simply to recover executions that failed because of retry exhaustion and should complete if tried again. See :ref:`ref_flyteidl.admin.ExecutionRecoverRequest` for more details. # noqa: E501 + def register_project2(self, project_org, body, **kwargs): # noqa: E501 + """Registers a :ref:`ref_flyteidl.admin.Project` with the Flyte deployment. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.recover_execution(body, async_req=True) + >>> thread = api.register_project2(project_org, body, async_req=True) >>> result = thread.get() :param async_req bool - :param AdminExecutionRecoverRequest body: (required) - :return: AdminExecutionCreateResponse + :param str project_org: Optional, org key applied to the resource. (required) + :param AdminProjectRegisterRequest body: (required) + :return: AdminProjectRegisterResponse If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.recover_execution_with_http_info(body, **kwargs) # noqa: E501 + return self.register_project2_with_http_info(project_org, body, **kwargs) # noqa: E501 else: - (data) = self.recover_execution_with_http_info(body, **kwargs) # noqa: E501 + (data) = self.register_project2_with_http_info(project_org, body, **kwargs) # noqa: E501 return data - def recover_execution_with_http_info(self, body, **kwargs): # noqa: E501 - """Recreates a previously-run workflow execution that will only start executing from the last known failure point. In Recover mode, users cannot change any input parameters or update the version of the execution. This is extremely useful to recover from system errors and byzantine faults like - Loss of K8s cluster, bugs in platform or instability, machine failures, downstream system failures (downstream services), or simply to recover executions that failed because of retry exhaustion and should complete if tried again. See :ref:`ref_flyteidl.admin.ExecutionRecoverRequest` for more details. # noqa: E501 + def register_project2_with_http_info(self, project_org, body, **kwargs): # noqa: E501 + """Registers a :ref:`ref_flyteidl.admin.Project` with the Flyte deployment. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.recover_execution_with_http_info(body, async_req=True) + >>> thread = api.register_project2_with_http_info(project_org, body, async_req=True) >>> result = thread.get() :param async_req bool - :param AdminExecutionRecoverRequest body: (required) - :return: AdminExecutionCreateResponse + :param str project_org: Optional, org key applied to the resource. (required) + :param AdminProjectRegisterRequest body: (required) + :return: AdminProjectRegisterResponse If the method is called asynchronously, returns the request thread. """ - all_params = ['body'] # noqa: E501 + all_params = ['project_org', 'body'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -10573,18 +11964,24 @@ def recover_execution_with_http_info(self, body, **kwargs): # noqa: E501 if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method recover_execution" % key + " to method register_project2" % key ) params[key] = val del params['kwargs'] + # verify the required parameter 'project_org' is set + if ('project_org' not in params or + params['project_org'] is None): + raise ValueError("Missing the required parameter `project_org` when calling `register_project2`") # noqa: E501 # verify the required parameter 'body' is set if ('body' not in params or params['body'] is None): - raise ValueError("Missing the required parameter `body` when calling `recover_execution`") # noqa: E501 + raise ValueError("Missing the required parameter `body` when calling `register_project2`") # noqa: E501 collection_formats = {} path_params = {} + if 'project_org' in params: + path_params['project.org'] = params['project_org'] # noqa: E501 query_params = [] @@ -10608,14 +12005,14 @@ def recover_execution_with_http_info(self, body, **kwargs): # noqa: E501 auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/executions/recover', 'POST', + '/api/v1/projects/org/{project.org}', 'POST', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminExecutionCreateResponse', # noqa: E501 + response_type='AdminProjectRegisterResponse', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -10623,38 +12020,38 @@ def recover_execution_with_http_info(self, body, **kwargs): # noqa: E501 _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def register_project(self, body, **kwargs): # noqa: E501 - """Registers a :ref:`ref_flyteidl.admin.Project` with the Flyte deployment. # noqa: E501 + def relaunch_execution(self, body, **kwargs): # noqa: E501 + """Triggers the creation of an identical :ref:`ref_flyteidl.admin.Execution` # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.register_project(body, async_req=True) + >>> thread = api.relaunch_execution(body, async_req=True) >>> result = thread.get() :param async_req bool - :param AdminProjectRegisterRequest body: (required) - :return: AdminProjectRegisterResponse + :param AdminExecutionRelaunchRequest body: (required) + :return: AdminExecutionCreateResponse If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.register_project_with_http_info(body, **kwargs) # noqa: E501 + return self.relaunch_execution_with_http_info(body, **kwargs) # noqa: E501 else: - (data) = self.register_project_with_http_info(body, **kwargs) # noqa: E501 + (data) = self.relaunch_execution_with_http_info(body, **kwargs) # noqa: E501 return data - def register_project_with_http_info(self, body, **kwargs): # noqa: E501 - """Registers a :ref:`ref_flyteidl.admin.Project` with the Flyte deployment. # noqa: E501 + def relaunch_execution_with_http_info(self, body, **kwargs): # noqa: E501 + """Triggers the creation of an identical :ref:`ref_flyteidl.admin.Execution` # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.register_project_with_http_info(body, async_req=True) + >>> thread = api.relaunch_execution_with_http_info(body, async_req=True) >>> result = thread.get() :param async_req bool - :param AdminProjectRegisterRequest body: (required) - :return: AdminProjectRegisterResponse + :param AdminExecutionRelaunchRequest body: (required) + :return: AdminExecutionCreateResponse If the method is called asynchronously, returns the request thread. """ @@ -10670,14 +12067,14 @@ def register_project_with_http_info(self, body, **kwargs): # noqa: E501 if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method register_project" % key + " to method relaunch_execution" % key ) params[key] = val del params['kwargs'] # verify the required parameter 'body' is set if ('body' not in params or params['body'] is None): - raise ValueError("Missing the required parameter `body` when calling `register_project`") # noqa: E501 + raise ValueError("Missing the required parameter `body` when calling `relaunch_execution`") # noqa: E501 collection_formats = {} @@ -10705,14 +12102,14 @@ def register_project_with_http_info(self, body, **kwargs): # noqa: E501 auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/projects', 'POST', + '/api/v1/executions/relaunch', 'POST', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, - response_type='AdminProjectRegisterResponse', # noqa: E501 + response_type='AdminExecutionCreateResponse', # noqa: E501 auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), @@ -10720,15 +12117,16 @@ def register_project_with_http_info(self, body, **kwargs): # noqa: E501 _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) - def relaunch_execution(self, body, **kwargs): # noqa: E501 + def relaunch_execution2(self, id_org, body, **kwargs): # noqa: E501 """Triggers the creation of an identical :ref:`ref_flyteidl.admin.Execution` # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.relaunch_execution(body, async_req=True) + >>> thread = api.relaunch_execution2(id_org, body, async_req=True) >>> result = thread.get() :param async_req bool + :param str id_org: Optional, org key applied to the resource. (required) :param AdminExecutionRelaunchRequest body: (required) :return: AdminExecutionCreateResponse If the method is called asynchronously, @@ -10736,27 +12134,28 @@ def relaunch_execution(self, body, **kwargs): # noqa: E501 """ kwargs['_return_http_data_only'] = True if kwargs.get('async_req'): - return self.relaunch_execution_with_http_info(body, **kwargs) # noqa: E501 + return self.relaunch_execution2_with_http_info(id_org, body, **kwargs) # noqa: E501 else: - (data) = self.relaunch_execution_with_http_info(body, **kwargs) # noqa: E501 + (data) = self.relaunch_execution2_with_http_info(id_org, body, **kwargs) # noqa: E501 return data - def relaunch_execution_with_http_info(self, body, **kwargs): # noqa: E501 + def relaunch_execution2_with_http_info(self, id_org, body, **kwargs): # noqa: E501 """Triggers the creation of an identical :ref:`ref_flyteidl.admin.Execution` # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.relaunch_execution_with_http_info(body, async_req=True) + >>> thread = api.relaunch_execution2_with_http_info(id_org, body, async_req=True) >>> result = thread.get() :param async_req bool + :param str id_org: Optional, org key applied to the resource. (required) :param AdminExecutionRelaunchRequest body: (required) :return: AdminExecutionCreateResponse If the method is called asynchronously, returns the request thread. """ - all_params = ['body'] # noqa: E501 + all_params = ['id_org', 'body'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') @@ -10767,18 +12166,24 @@ def relaunch_execution_with_http_info(self, body, **kwargs): # noqa: E501 if key not in all_params: raise TypeError( "Got an unexpected keyword argument '%s'" - " to method relaunch_execution" % key + " to method relaunch_execution2" % key ) params[key] = val del params['kwargs'] + # verify the required parameter 'id_org' is set + if ('id_org' not in params or + params['id_org'] is None): + raise ValueError("Missing the required parameter `id_org` when calling `relaunch_execution2`") # noqa: E501 # verify the required parameter 'body' is set if ('body' not in params or params['body'] is None): - raise ValueError("Missing the required parameter `body` when calling `relaunch_execution`") # noqa: E501 + raise ValueError("Missing the required parameter `body` when calling `relaunch_execution2`") # noqa: E501 collection_formats = {} path_params = {} + if 'id_org' in params: + path_params['id.org'] = params['id_org'] # noqa: E501 query_params = [] @@ -10802,7 +12207,7 @@ def relaunch_execution_with_http_info(self, body, **kwargs): # noqa: E501 auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/executions/relaunch', 'POST', + '/api/v1/executions/org/{id.org}/relaunch', 'POST', path_params, query_params, header_params, @@ -11052,7 +12457,7 @@ def terminate_execution2_with_http_info(self, id_org, id_project, id_domain, id_ auth_settings = [] # noqa: E501 return self.api_client.call_api( - '/api/v1/data/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}', 'DELETE', + '/api/v1/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}', 'DELETE', path_params, query_params, header_params, diff --git a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/test/test_admin_service_api.py b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/test/test_admin_service_api.py index 21e5e86a25..573c16b8d3 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/test/test_admin_service_api.py +++ b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/test/test_admin_service_api.py @@ -36,6 +36,13 @@ def test_create_execution(self): """ pass + def test_create_execution2(self): + """Test case for create_execution2 + + Triggers the creation of a :ref:`ref_flyteidl.admin.Execution` # noqa: E501 + """ + pass + def test_create_launch_plan(self): """Test case for create_launch_plan @@ -43,6 +50,13 @@ def test_create_launch_plan(self): """ pass + def test_create_launch_plan2(self): + """Test case for create_launch_plan2 + + Create and upload a :ref:`ref_flyteidl.admin.LaunchPlan` definition # noqa: E501 + """ + pass + def test_create_node_event(self): """Test case for create_node_event @@ -50,6 +64,13 @@ def test_create_node_event(self): """ pass + def test_create_node_event2(self): + """Test case for create_node_event2 + + Indicates a :ref:`ref_flyteidl.event.NodeExecutionEvent` has occurred. # noqa: E501 + """ + pass + def test_create_task(self): """Test case for create_task @@ -57,6 +78,13 @@ def test_create_task(self): """ pass + def test_create_task2(self): + """Test case for create_task2 + + Create and upload a :ref:`ref_flyteidl.admin.Task` definition # noqa: E501 + """ + pass + def test_create_task_event(self): """Test case for create_task_event @@ -64,6 +92,13 @@ def test_create_task_event(self): """ pass + def test_create_task_event2(self): + """Test case for create_task_event2 + + Indicates a :ref:`ref_flyteidl.event.TaskExecutionEvent` has occurred. # noqa: E501 + """ + pass + def test_create_workflow(self): """Test case for create_workflow @@ -71,6 +106,13 @@ def test_create_workflow(self): """ pass + def test_create_workflow2(self): + """Test case for create_workflow2 + + Create and upload a :ref:`ref_flyteidl.admin.Workflow` definition # noqa: E501 + """ + pass + def test_create_workflow_event(self): """Test case for create_workflow_event @@ -78,6 +120,13 @@ def test_create_workflow_event(self): """ pass + def test_create_workflow_event2(self): + """Test case for create_workflow_event2 + + Indicates a :ref:`ref_flyteidl.event.WorkflowExecutionEvent` has occurred. # noqa: E501 + """ + pass + def test_delete_project_attributes(self): """Test case for delete_project_attributes @@ -357,6 +406,13 @@ def test_list_active_launch_plans(self): """ pass + def test_list_active_launch_plans2(self): + """Test case for list_active_launch_plans2 + + List active versions of :ref:`ref_flyteidl.admin.LaunchPlan`. # noqa: E501 + """ + pass + def test_list_description_entities(self): """Test case for list_description_entities @@ -448,6 +504,13 @@ def test_list_matchable_attributes(self): """ pass + def test_list_matchable_attributes2(self): + """Test case for list_matchable_attributes2 + + Lists custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a specific resource type. # noqa: E501 + """ + pass + def test_list_named_entities(self): """Test case for list_named_entities @@ -497,6 +560,13 @@ def test_list_projects(self): """ pass + def test_list_projects2(self): + """Test case for list_projects2 + + Fetches a list of :ref:`ref_flyteidl.admin.Project` # noqa: E501 + """ + pass + def test_list_task_executions(self): """Test case for list_task_executions @@ -602,6 +672,13 @@ def test_recover_execution(self): """ pass + def test_recover_execution2(self): + """Test case for recover_execution2 + + Recreates a previously-run workflow execution that will only start executing from the last known failure point. In Recover mode, users cannot change any input parameters or update the version of the execution. This is extremely useful to recover from system errors and byzantine faults like - Loss of K8s cluster, bugs in platform or instability, machine failures, downstream system failures (downstream services), or simply to recover executions that failed because of retry exhaustion and should complete if tried again. See :ref:`ref_flyteidl.admin.ExecutionRecoverRequest` for more details. # noqa: E501 + """ + pass + def test_register_project(self): """Test case for register_project @@ -609,6 +686,13 @@ def test_register_project(self): """ pass + def test_register_project2(self): + """Test case for register_project2 + + Registers a :ref:`ref_flyteidl.admin.Project` with the Flyte deployment. # noqa: E501 + """ + pass + def test_relaunch_execution(self): """Test case for relaunch_execution @@ -616,6 +700,13 @@ def test_relaunch_execution(self): """ pass + def test_relaunch_execution2(self): + """Test case for relaunch_execution2 + + Triggers the creation of an identical :ref:`ref_flyteidl.admin.Execution` # noqa: E501 + """ + pass + def test_terminate_execution(self): """Test case for terminate_execution diff --git a/flyteidl/gen/pb_python/flyteidl/service/signal_pb2.py b/flyteidl/gen/pb_python/flyteidl/service/signal_pb2.py index 20e9fe2071..de5abc2b16 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/signal_pb2.py +++ b/flyteidl/gen/pb_python/flyteidl/service/signal_pb2.py @@ -15,7 +15,7 @@ from flyteidl.admin import signal_pb2 as flyteidl_dot_admin_dot_signal__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1d\x66lyteidl/service/signal.proto\x12\x10\x66lyteidl.service\x1a\x1cgoogle/api/annotations.proto\x1a\x1b\x66lyteidl/admin/signal.proto2\x9a\x03\n\rSignalService\x12W\n\x11GetOrCreateSignal\x12(.flyteidl.admin.SignalGetOrCreateRequest\x1a\x16.flyteidl.admin.Signal\"\x00\x12\xc1\x01\n\x0bListSignals\x12!.flyteidl.admin.SignalListRequest\x1a\x1a.flyteidl.admin.SignalList\"s\x82\xd3\xe4\x93\x02m\x12k/api/v1/signals/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name}\x12l\n\tSetSignal\x12 .flyteidl.admin.SignalSetRequest\x1a!.flyteidl.admin.SignalSetResponse\"\x1a\x82\xd3\xe4\x93\x02\x14:\x01*\"\x0f/api/v1/signalsB\xc3\x01\n\x14\x63om.flyteidl.serviceB\x0bSignalProtoP\x01Z=github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/service\xa2\x02\x03\x46SX\xaa\x02\x10\x46lyteidl.Service\xca\x02\x10\x46lyteidl\\Service\xe2\x02\x1c\x46lyteidl\\Service\\GPBMetadata\xea\x02\x11\x46lyteidl::Serviceb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1d\x66lyteidl/service/signal.proto\x12\x10\x66lyteidl.service\x1a\x1cgoogle/api/annotations.proto\x1a\x1b\x66lyteidl/admin/signal.proto2\xde\x04\n\rSignalService\x12W\n\x11GetOrCreateSignal\x12(.flyteidl.admin.SignalGetOrCreateRequest\x1a\x16.flyteidl.admin.Signal\"\x00\x12\xd4\x02\n\x0bListSignals\x12!.flyteidl.admin.SignalListRequest\x1a\x1a.flyteidl.admin.SignalList\"\x85\x02\x82\xd3\xe4\x93\x02\xfe\x01Z\x8e\x01\x12\x8b\x01/api/v1/signals/org/{workflow_execution_id.org}/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name}\x12k/api/v1/signals/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name}\x12\x9c\x01\n\tSetSignal\x12 .flyteidl.admin.SignalSetRequest\x1a!.flyteidl.admin.SignalSetResponse\"J\x82\xd3\xe4\x93\x02\x44:\x01*Z.:\x01*\")/api/v1/signals/org/{id.execution_id.org}\"\x0f/api/v1/signalsB\xc3\x01\n\x14\x63om.flyteidl.serviceB\x0bSignalProtoP\x01Z=github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/service\xa2\x02\x03\x46SX\xaa\x02\x10\x46lyteidl.Service\xca\x02\x10\x46lyteidl\\Service\xe2\x02\x1c\x46lyteidl\\Service\\GPBMetadata\xea\x02\x11\x46lyteidl::Serviceb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -25,9 +25,9 @@ DESCRIPTOR._options = None DESCRIPTOR._serialized_options = b'\n\024com.flyteidl.serviceB\013SignalProtoP\001Z=github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/service\242\002\003FSX\252\002\020Flyteidl.Service\312\002\020Flyteidl\\Service\342\002\034Flyteidl\\Service\\GPBMetadata\352\002\021Flyteidl::Service' _SIGNALSERVICE.methods_by_name['ListSignals']._options = None - _SIGNALSERVICE.methods_by_name['ListSignals']._serialized_options = b'\202\323\344\223\002m\022k/api/v1/signals/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name}' + _SIGNALSERVICE.methods_by_name['ListSignals']._serialized_options = b'\202\323\344\223\002\376\001Z\216\001\022\213\001/api/v1/signals/org/{workflow_execution_id.org}/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name}\022k/api/v1/signals/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name}' _SIGNALSERVICE.methods_by_name['SetSignal']._options = None - _SIGNALSERVICE.methods_by_name['SetSignal']._serialized_options = b'\202\323\344\223\002\024:\001*\"\017/api/v1/signals' + _SIGNALSERVICE.methods_by_name['SetSignal']._serialized_options = b'\202\323\344\223\002D:\001*Z.:\001*\")/api/v1/signals/org/{id.execution_id.org}\"\017/api/v1/signals' _globals['_SIGNALSERVICE']._serialized_start=111 - _globals['_SIGNALSERVICE']._serialized_end=521 + _globals['_SIGNALSERVICE']._serialized_end=717 # @@protoc_insertion_point(module_scope) diff --git a/flyteidl/gen/pb_rust/flyteidl.admin.rs b/flyteidl/gen/pb_rust/flyteidl.admin.rs index dddc3ae467..87932411a0 100644 --- a/flyteidl/gen/pb_rust/flyteidl.admin.rs +++ b/flyteidl/gen/pb_rust/flyteidl.admin.rs @@ -1945,6 +1945,9 @@ pub struct ListMatchableAttributesRequest { /// +required #[prost(enumeration="MatchableResource", tag="1")] pub resource_type: i32, + /// Optional, org filter applied to list project requests. + #[prost(string, tag="2")] + pub org: ::prost::alloc::string::String, } /// Response for a request for all matching resource attributes for a resource type. /// See :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for more details @@ -2404,6 +2407,9 @@ pub struct ProjectListRequest { /// +optional #[prost(message, optional, tag="4")] pub sort_by: ::core::option::Option, + /// Optional, org filter applied to list project requests. + #[prost(string, tag="5")] + pub org: ::prost::alloc::string::String, } /// Adds a new user-project within the Flyte deployment. /// See :ref:`ref_flyteidl.admin.Project` for more details diff --git a/flyteidl/protos/flyteidl/admin/matchable_resource.proto b/flyteidl/protos/flyteidl/admin/matchable_resource.proto index 692215b59d..cca6dbcc41 100644 --- a/flyteidl/protos/flyteidl/admin/matchable_resource.proto +++ b/flyteidl/protos/flyteidl/admin/matchable_resource.proto @@ -178,6 +178,9 @@ message MatchableAttributesConfiguration { message ListMatchableAttributesRequest { // +required MatchableResource resource_type = 1; + + // Optional, org filter applied to list project requests. + string org = 2; } // Response for a request for all matching resource attributes for a resource type. diff --git a/flyteidl/protos/flyteidl/admin/project.proto b/flyteidl/protos/flyteidl/admin/project.proto index 907b7d2cae..7a1e57b764 100644 --- a/flyteidl/protos/flyteidl/admin/project.proto +++ b/flyteidl/protos/flyteidl/admin/project.proto @@ -80,6 +80,9 @@ message ProjectListRequest { // Sort ordering. // +optional Sort sort_by = 4; + + // Optional, org filter applied to list project requests. + string org = 5; } // Adds a new user-project within the Flyte deployment. diff --git a/flyteidl/protos/flyteidl/service/admin.proto b/flyteidl/protos/flyteidl/service/admin.proto index d0f5391d25..f03f2a1e4e 100644 --- a/flyteidl/protos/flyteidl/service/admin.proto +++ b/flyteidl/protos/flyteidl/service/admin.proto @@ -29,6 +29,10 @@ service AdminService { option (google.api.http) = { post: "/api/v1/tasks" body: "*" + additional_bindings { + post: "/api/v1/tasks/org/{id.org}" + body: "*" + } }; // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { // description: "Create and register a task definition." @@ -97,6 +101,10 @@ service AdminService { option (google.api.http) = { post: "/api/v1/workflows" body: "*" + additional_bindings { + post: "/api/v1/workflows/org/{id.org}" + body: "*" + } }; // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { // description: "Create and register a workflow definition." @@ -165,6 +173,10 @@ service AdminService { option (google.api.http) = { post: "/api/v1/launch_plans" body: "*" + additional_bindings { + post: "/api/v1/launch_plans/org/{id.org}" + body: "*" + } }; // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { // description: "Create and register a launch plan definition." @@ -213,6 +225,9 @@ service AdminService { rpc ListActiveLaunchPlans (flyteidl.admin.ActiveLaunchPlanListRequest) returns (flyteidl.admin.LaunchPlanList) { option (google.api.http) = { get: "/api/v1/active_launch_plans/{project}/{domain}" + additional_bindings { + get: "/api/v1/active_launch_plans/org/{org}/{project}/{domain}" + } }; // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { // description: "Fetch the active launch plan versions specified by input request filters." @@ -275,6 +290,10 @@ service AdminService { option (google.api.http) = { post: "/api/v1/executions" body: "*" + additional_bindings { + put: "/api/v1/executions/org/{org}" + body: "*" + } }; // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { // description: "Create a workflow execution." @@ -286,6 +305,10 @@ service AdminService { option (google.api.http) = { post: "/api/v1/executions/relaunch" body: "*" + additional_bindings { + post: "/api/v1/executions/org/{id.org}/relaunch" + body: "*" + } }; // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { // description: "Relaunch a workflow execution." @@ -301,6 +324,10 @@ service AdminService { option (google.api.http) = { post: "/api/v1/executions/recover" body: "*" + additional_bindings { + post: "/api/v1/executions/org/{id.org}/recover" + body: "*" + } }; // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { // description: "Recreates a previously-run workflow execution that will only start executing from the last known failure point. " @@ -371,7 +398,7 @@ service AdminService { delete: "/api/v1/executions/{id.project}/{id.domain}/{id.name}" body: "*" additional_bindings { - delete: "/api/v1/data/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}" + delete: "/api/v1/executions/org/{id.org}/{id.project}/{id.domain}/{id.name}" body: "*" } }; @@ -437,6 +464,10 @@ service AdminService { option (google.api.http) = { post: "/api/v1/projects" body: "*" + additional_bindings { + post: "/api/v1/projects/org/{project.org}" + body: "*" + } }; // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { // description: "Register a project." @@ -464,6 +495,9 @@ service AdminService { rpc ListProjects (flyteidl.admin.ProjectListRequest) returns (flyteidl.admin.Projects) { option (google.api.http) = { get: "/api/v1/projects" + additional_bindings { + get: "/api/v1/projects/org/{org}" + } }; // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { // description: "Fetch registered projects." @@ -475,6 +509,10 @@ service AdminService { option (google.api.http) = { post: "/api/v1/events/workflows" body: "*" + additional_bindings { + post: "/api/v1/events/org/{event.execution_id.org}/workflows" + body: "*" + } }; // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { // description: "Create a workflow execution event recording a phase transition." @@ -486,6 +524,10 @@ service AdminService { option (google.api.http) = { post: "/api/v1/events/nodes" body: "*" + additional_bindings { + post: "/api/v1/events/org/{event.id.execution_id.org}/nodes" + body: "*" + } }; // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { // description: "Create a node execution event recording a phase transition." @@ -497,6 +539,10 @@ service AdminService { option (google.api.http) = { post: "/api/v1/events/tasks" body: "*" + additional_bindings { + post: "/api/v1/events/org/{event.parent_node_execution_id.execution_id.org}/tasks" + body: "*" + } }; // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { // description: "Create a task execution event recording a phase transition." @@ -675,6 +721,9 @@ service AdminService { rpc ListMatchableAttributes (flyteidl.admin.ListMatchableAttributesRequest) returns (flyteidl.admin.ListMatchableAttributesResponse) { option (google.api.http) = { get: "/api/v1/matchable_attributes" + additional_bindings { + get: "/api/v1/matchable_attributes/org/{org}" + } }; // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { // description: "Retrieve a list of MatchableAttributesConfiguration objects." diff --git a/flyteidl/protos/flyteidl/service/signal.proto b/flyteidl/protos/flyteidl/service/signal.proto index 91030d226c..07389774d0 100644 --- a/flyteidl/protos/flyteidl/service/signal.proto +++ b/flyteidl/protos/flyteidl/service/signal.proto @@ -24,6 +24,9 @@ service SignalService { rpc ListSignals (flyteidl.admin.SignalListRequest) returns (flyteidl.admin.SignalList) { option (google.api.http) = { get: "/api/v1/signals/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name}" + additional_bindings: { + get: "/api/v1/signals/org/{workflow_execution_id.org}/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name}" + } }; // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { // description: "Fetch existing signal definitions matching the input signal id filters." @@ -35,6 +38,10 @@ service SignalService { option (google.api.http) = { post: "/api/v1/signals" body: "*" + additional_bindings: { + post: "/api/v1/signals/org/{id.execution_id.org}" + body: "*" + } }; // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { // description: "Set a signal value."