From 916a0f361470f221ec769505f5bf327753bef7be Mon Sep 17 00:00:00 2001 From: Miles Yucht Date: Fri, 12 Jan 2024 17:38:05 +0100 Subject: [PATCH 1/6] Improvements for testing work Improvements for testing work --- .codegen/api.go.tmpl | 22 +- .../pydevd_frame_evaluator.cp39-win_amd64.pyd | Bin 0 -> 146480 bytes .../pydevd_frame_evaluator.pyx | 747 ++++++++++++++++++ apierr/errors.go | 10 +- .../service/billing/mock_budgets_interface.go | 12 +- .../billing/mock_log_delivery_interface.go | 12 +- ...account_metastore_assignments_interface.go | 12 +- .../mock_account_metastores_interface.go | 12 +- .../catalog/mock_catalogs_interface.go | 12 +- .../catalog/mock_connections_interface.go | 12 +- .../mock_external_locations_interface.go | 12 +- .../catalog/mock_functions_interface.go | 12 +- .../catalog/mock_metastores_interface.go | 12 +- .../catalog/mock_model_versions_interface.go | 12 +- .../mock_registered_models_interface.go | 12 +- .../service/catalog/mock_schemas_interface.go | 12 +- .../mock_storage_credentials_interface.go | 12 +- .../catalog/mock_system_schemas_interface.go | 12 +- .../service/catalog/mock_tables_interface.go | 24 +- .../service/catalog/mock_volumes_interface.go | 12 +- .../mock_cluster_policies_interface.go | 12 +- .../compute/mock_clusters_interface.go | 94 +-- .../mock_command_execution_interface.go | 14 +- .../mock_global_init_scripts_interface.go | 12 +- .../compute/mock_instance_pools_interface.go | 12 +- .../mock_instance_profiles_interface.go | 12 +- .../compute/mock_libraries_interface.go | 12 +- .../compute/mock_policy_families_interface.go | 12 +- .../service/files/mock_dbfs_interface.go | 12 +- .../iam/mock_account_groups_interface.go | 12 +- ...ck_account_service_principals_interface.go | 12 +- .../iam/mock_account_users_interface.go | 12 +- .../service/iam/mock_groups_interface.go | 12 +- .../iam/mock_service_principals_interface.go | 12 +- .../mocks/service/iam/mock_users_interface.go | 12 +- .../mock_workspace_assignment_interface.go | 12 +- .../mocks/service/jobs/mock_jobs_interface.go | 38 +- .../service/ml/mock_experiments_interface.go | 60 +- .../ml/mock_model_registry_interface.go | 72 +- .../mock_custom_app_integration_interface.go | 12 +- .../mock_o_auth_published_apps_interface.go | 12 +- ...ock_published_app_integration_interface.go | 12 +- ...ock_service_principal_secrets_interface.go | 12 +- .../pipelines/mock_pipelines_interface.go | 52 +- .../provisioning/mock_workspaces_interface.go | 14 +- .../mock_serving_endpoints_interface.go | 12 +- .../mock_account_ip_access_lists_interface.go | 12 +- .../mock_ip_access_lists_interface.go | 12 +- .../mock_network_connectivity_interface.go | 24 +- .../mock_token_management_interface.go | 12 +- .../service/settings/mock_tokens_interface.go | 12 +- .../sharing/mock_clean_rooms_interface.go | 12 +- .../sharing/mock_providers_interface.go | 24 +- .../sharing/mock_recipients_interface.go | 12 +- .../service/sharing/mock_shares_interface.go | 12 +- .../service/sql/mock_dashboards_interface.go | 12 +- .../service/sql/mock_queries_interface.go | 12 +- .../sql/mock_query_history_interface.go | 12 +- .../service/sql/mock_warehouses_interface.go | 54 +- .../mock_vector_search_endpoints_interface.go | 12 +- .../mock_vector_search_indexes_interface.go | 12 +- .../mock_git_credentials_interface.go | 12 +- .../service/workspace/mock_repos_interface.go | 12 +- .../workspace/mock_secrets_interface.go | 36 +- .../workspace/mock_workspace_interface.go | 12 +- service/billing/api.go | 8 +- service/catalog/api.go | 60 +- service/compute/api.go | 116 +-- service/files/api.go | 4 +- service/iam/api.go | 28 +- service/iam/model.go | 4 +- service/jobs/api.go | 28 +- service/ml/api.go | 44 +- service/ml/model_registry_usage_test.go | 26 +- service/oauth2/api.go | 16 +- service/pipelines/api.go | 36 +- service/provisioning/api.go | 16 +- service/serving/api.go | 14 +- service/settings/api.go | 24 +- service/sharing/api.go | 20 +- service/sql/api.go | 54 +- service/sql/model.go | 1 - service/vectorsearch/api.go | 16 +- service/workspace/api.go | 24 +- 84 files changed, 1576 insertions(+), 836 deletions(-) create mode 100644 .venv/lib/python3.12/site-packages/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_evaluator.cp39-win_amd64.pyd create mode 100644 .venv/lib/python3.12/site-packages/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_evaluator.pyx diff --git a/.codegen/api.go.tmpl b/.codegen/api.go.tmpl index 24a6df4bf..db33f83c6 100644 --- a/.codegen/api.go.tmpl +++ b/.codegen/api.go.tmpl @@ -46,7 +46,7 @@ type {{.PascalName}}Interface interface { {{range .Methods}} {{- $hasWaiter := and .Wait (and (not .IsCrudRead) (not (eq .SnakeName "get_run"))) -}} {{if not .Pagination}}{{.Comment "// " 80}} - {{.PascalName}}(ctx context.Context{{if .Request}}, {{if $hasWaiter}}{{.Request.CamelName}}{{else}}request{{end}} {{.Request.PascalName}}{{end}}) {{if $hasWaiter}}(*{{.Wait.PascalName}}{{with .Response}}[{{.PascalName}}]{{else}}[any]{{end}}, error){{else}}{{ template "response-type" .}}{{end}} + {{.PascalName}}(ctx context.Context{{if .Request}}, {{if $hasWaiter}}{{.Request.CamelName}}{{else}}request{{end}} {{.Request.PascalName}}{{end}}) {{if $hasWaiter}}(*{{.Wait.PascalName}}{{with .Response}}[{{.PascalName}}]{{else}}[struct{}]{{end}}, error){{else}}{{ template "response-type" .}}{{end}} {{end}} {{if $hasWaiter}} @@ -174,7 +174,7 @@ func (a *{{.Method.Service.PascalName}}API) {{.PascalName}}(ctx context.Context{ type {{.PascalName}}[R any] struct { Response *R{{range .Binding}} {{.PollField.PascalName}} {{template "type" .PollField.Entity}} `json:"{{.PollField.Name}}"`{{end}} - poll func(time.Duration, func(*{{.Poll.Response.PascalName}})) (*{{.Poll.Response.PascalName}}, error) + Poll func(time.Duration, func(*{{.Poll.Response.PascalName}})) (*{{.Poll.Response.PascalName}}, error) callback func(*{{.Poll.Response.PascalName}}) timeout time.Duration } @@ -187,29 +187,29 @@ func (w *{{.PascalName}}[R]) OnProgress(callback func(*{{.Poll.Response.PascalNa // Get the {{.Poll.Response.PascalName}} with the default timeout of {{.Timeout}} minutes. func (w *{{.PascalName}}[R]) Get() (*{{.Poll.Response.PascalName}}, error) { - return w.poll(w.timeout, w.callback) + return w.Poll(w.timeout, w.callback) } // Get the {{.Poll.Response.PascalName}} with custom timeout. func (w *{{.PascalName}}[R]) GetWithTimeout(timeout time.Duration) (*{{.Poll.Response.PascalName}}, error) { - return w.poll(timeout, w.callback) + return w.Poll(timeout, w.callback) } {{end}} {{range .Methods}} {{- $hasWaiter := and .Wait (and (not .IsCrudRead) (not (eq .SnakeName "get_run"))) -}} {{if not .Pagination}}{{.Comment "// " 80}} -func (a *{{.Service.PascalName}}API) {{.PascalName}}(ctx context.Context{{if .Request}}, {{if $hasWaiter}}{{.Request.CamelName}}{{else}}request{{end}} {{.Request.PascalName}}{{end}}) {{if $hasWaiter}}(*{{.Wait.PascalName}}{{with .Response}}[{{.PascalName}}]{{else}}[any]{{end}}, error){{else}}{{ template "response-type" .}}{{end}} { +func (a *{{.Service.PascalName}}API) {{.PascalName}}(ctx context.Context{{if .Request}}, {{if $hasWaiter}}{{.Request.CamelName}}{{else}}request{{end}} {{.Request.PascalName}}{{end}}) {{if $hasWaiter}}(*{{.Wait.PascalName}}{{with .Response}}[{{.PascalName}}]{{else}}[struct{}]{{end}}, error){{else}}{{ template "response-type" .}}{{end}} { {{if $hasWaiter -}} {{if .Response}}{{.Response.CamelName}}, {{end}}err := a.impl.{{.PascalName}}(ctx{{if .Request}}, {{.Request.CamelName}}{{end}}) if err != nil { return nil, err } - return &{{.Wait.PascalName}}{{with .Response}}[{{.PascalName}}]{{else}}[any]{{end}}{ + return &{{.Wait.PascalName}}{{with .Response}}[{{.PascalName}}]{{else}}[struct{}]{{end}}{ {{with .Response}}Response: {{.CamelName}}, {{- end}}{{range .Wait.Binding}} {{.PollField.PascalName}}: {{.Bind.Of.CamelName}}.{{.Bind.PascalName}},{{end}} - poll: func(timeout time.Duration, callback func(*{{.Wait.Poll.Response.PascalName}})) (*{{.Wait.Poll.Response.PascalName}}, error) { + Poll: func(timeout time.Duration, callback func(*{{.Wait.Poll.Response.PascalName}})) (*{{.Wait.Poll.Response.PascalName}}, error) { return a.{{.Wait.PascalName}}(ctx{{range .Wait.Binding}}, {{.Bind.Of.CamelName}}.{{.Bind.PascalName}}{{end}}, timeout, callback) }, timeout: {{.Wait.Timeout}}*time.Minute, @@ -400,10 +400,8 @@ func (a *{{.Service.Name}}API) {{.Shortcut.PascalName}}AndWait(ctx context.Conte {{- define "paginated-request-type" -}} {{if .Request}}{{.Request.PascalName}}{{else}}struct{}{{end}} {{- end -}} + +{{/* Note: we return the interface to make it possible to mock list responses more easily. */}} {{- define "paginated-return-type" -}} - {{ if .NeedsOffsetDedupe -}} - *listing.DeduplicatingIterator[{{ template "type" .Pagination.Entity }}, {{ template "type" .IdentifierField.Entity }}] - {{- else -}} - *listing.PaginatingIterator[{{ template "paginated-request-type" .}}, *{{ .Response.PascalName }}, {{ template "type" .Pagination.Entity }}] - {{- end -}} + listing.Iterator[{{ template "type" .Pagination.Entity }}] {{- end -}} \ No newline at end of file diff --git a/.venv/lib/python3.12/site-packages/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_evaluator.cp39-win_amd64.pyd b/.venv/lib/python3.12/site-packages/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_evaluator.cp39-win_amd64.pyd new file mode 100644 index 0000000000000000000000000000000000000000..534232cf58af15dbbe684ae5890a5f5541880cc6 GIT binary patch literal 146480 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 e5B<9OZ2N5Il6B frame_obj.f_code.co_filename + i = basename.rfind('/') + j = basename.rfind('\\') + if j > i: + i = j + if i >= 0: + basename = basename[i + 1:] + # remove ext + i = basename.rfind('.') + if i >= 0: + basename = basename[:i] + + co_name = frame_obj.f_code.co_name + + # In these cases we cannot create a dummy thread (an actual + # thread will be created later or tracing will already be set). + if basename == 'threading' and co_name in ('__bootstrap', '_bootstrap', '__bootstrap_inner', '_bootstrap_inner'): + self._can_create_dummy_thread = False + elif basename == 'pydev_monkey' and co_name == '__call__': + self._can_create_dummy_thread = False + elif basename == 'pydevd' and co_name in ('run', 'main', '_exec'): + self._can_create_dummy_thread = False + elif basename == 'pydevd_tracing': + self._can_create_dummy_thread = False + else: + self._can_create_dummy_thread = True + + # print('Can create dummy thread for thread started in: %s %s' % (basename, co_name)) + + cdef initialize_if_possible(self): + # Don't call threading.currentThread because if we're too early in the process + # we may create a dummy thread. + self.inside_frame_eval += 1 + + try: + thread_ident = _get_ident() + t = _thread_active.get(thread_ident) + if t is None: + if self._can_create_dummy_thread: + # Initialize the dummy thread and set the tracing (both are needed to + # actually stop on breakpoints). + t = threading.current_thread() + SetTrace(dummy_trace_dispatch) + else: + return # Cannot initialize until thread becomes active. + + if getattr(t, 'is_pydev_daemon_thread', False): + self.is_pydevd_thread = True + self.fully_initialized = True + else: + try: + additional_info = t.additional_info + if additional_info is None: + raise AttributeError() + except: + with _set_additional_thread_info_lock: + # If it's not there, set it within a lock to avoid any racing + # conditions. + additional_info = getattr(thread, 'additional_info', None) + if additional_info is None: + additional_info = PyDBAdditionalThreadInfo() + t.additional_info = additional_info + self.additional_info = additional_info + self.fully_initialized = True + finally: + self.inside_frame_eval -= 1 + + +cdef class FuncCodeInfo: + + cdef public str co_filename + cdef public str co_name + cdef public str canonical_normalized_filename + cdef bint always_skip_code + cdef public bint breakpoint_found + cdef public object new_code + + # When breakpoints_mtime != PyDb.mtime the validity of breakpoints have + # to be re-evaluated (if invalid a new FuncCodeInfo must be created and + # tracing can't be disabled for the related frames). + cdef public int breakpoints_mtime + + def __init__(self): + self.co_filename = '' + self.canonical_normalized_filename = '' + self.always_skip_code = False + + # If breakpoints are found but new_code is None, + # this means we weren't able to actually add the code + # where needed, so, fallback to tracing. + self.breakpoint_found = False + self.new_code = None + self.breakpoints_mtime = -1 + + +def dummy_trace_dispatch(frame, str event, arg): + if event == 'call': + if frame.f_trace is not None: + return frame.f_trace(frame, event, arg) + return None + + +def get_thread_info_py() -> ThreadInfo: + return get_thread_info(PyEval_GetFrame()) + + +cdef ThreadInfo get_thread_info(PyFrameObject * frame_obj): + ''' + Provides thread-related info. + + May return None if the thread is still not active. + ''' + cdef ThreadInfo thread_info + try: + # Note: changing to a `dict[thread.ident] = thread_info` had almost no + # effect in the performance. + thread_info = _thread_local_info.thread_info + except: + if frame_obj == NULL: + return None + thread_info = ThreadInfo() + thread_info.initialize(frame_obj) + thread_info.inside_frame_eval += 1 + try: + _thread_local_info.thread_info = thread_info + + # Note: _code_extra_index is not actually thread-related, + # but this is a good point to initialize it. + global _code_extra_index + if _code_extra_index == -1: + _code_extra_index = _PyEval_RequestCodeExtraIndex(release_co_extra) + + thread_info.initialize_if_possible() + finally: + thread_info.inside_frame_eval -= 1 + + return thread_info + + +def decref_py(obj): + ''' + Helper to be called from Python. + ''' + Py_DECREF(obj) + + +def get_func_code_info_py(thread_info, frame, code_obj) -> FuncCodeInfo: + ''' + Helper to be called from Python. + ''' + return get_func_code_info( thread_info, frame, code_obj) + + +cdef int _code_extra_index = -1 + +cdef FuncCodeInfo get_func_code_info(ThreadInfo thread_info, PyFrameObject * frame_obj, PyCodeObject * code_obj): + ''' + Provides code-object related info. + + Stores the gathered info in a cache in the code object itself. Note that + multiple threads can get the same info. + + get_thread_info() *must* be called at least once before get_func_code_info() + to initialize _code_extra_index. + + ''' + # f_code = code_obj + # DEBUG = f_code.co_filename.endswith('_debugger_case_multiprocessing.py') + # if DEBUG: + # print('get_func_code_info', f_code.co_name, f_code.co_filename) + + cdef object main_debugger = GlobalDebuggerHolder.global_dbg + thread_info.force_stay_in_untraced_mode = False # This is an output value of the function. + + cdef PyObject * extra + _PyCode_GetExtra( code_obj, _code_extra_index, & extra) + if extra is not NULL: + extra_obj = extra + if extra_obj is not NULL: + func_code_info_obj = extra_obj + if func_code_info_obj.breakpoints_mtime == main_debugger.mtime: + # if DEBUG: + # print('get_func_code_info: matched mtime', f_code.co_name, f_code.co_filename) + + return func_code_info_obj + + cdef str co_filename = code_obj.co_filename + cdef str co_name = code_obj.co_name + cdef dict cache_file_type + cdef tuple cache_file_type_key + + func_code_info = FuncCodeInfo() + func_code_info.breakpoints_mtime = main_debugger.mtime + + func_code_info.co_filename = co_filename + func_code_info.co_name = co_name + + if not func_code_info.always_skip_code: + try: + abs_path_real_path_and_base = NORM_PATHS_AND_BASE_CONTAINER[co_filename] + except: + abs_path_real_path_and_base = get_abs_path_real_path_and_base_from_frame(frame_obj) + + func_code_info.canonical_normalized_filename = abs_path_real_path_and_base[1] + + cache_file_type = main_debugger.get_cache_file_type() + # Note: this cache key must be the same from PyDB.get_file_type() -- see it for comments + # on the cache. + cache_file_type_key = (frame_obj.f_code.co_firstlineno, abs_path_real_path_and_base[0], frame_obj.f_code) + try: + file_type = cache_file_type[cache_file_type_key] # Make it faster + except: + file_type = main_debugger.get_file_type(frame_obj, abs_path_real_path_and_base) # we don't want to debug anything related to pydevd + + if file_type is not None: + func_code_info.always_skip_code = True + + if not func_code_info.always_skip_code: + if main_debugger is not None: + + breakpoints: dict = main_debugger.breakpoints.get(func_code_info.canonical_normalized_filename) + function_breakpoint: object = main_debugger.function_breakpoint_name_to_breakpoint.get(func_code_info.co_name) + # print('\n---') + # print(main_debugger.breakpoints) + # print(func_code_info.canonical_normalized_filename) + # print(main_debugger.breakpoints.get(func_code_info.canonical_normalized_filename)) + code_obj_py: object = code_obj + cached_code_obj_info: object = _cache.get(code_obj_py) + if cached_code_obj_info: + # The cache is for new code objects, so, in this case it's already + # using the new code and we can't change it as this is a generator! + # There's still a catch though: even though we don't replace the code, + # we may not want to go into tracing mode (as would usually happen + # when the new_code is None). + func_code_info.new_code = None + breakpoint_found, thread_info.force_stay_in_untraced_mode = \ + cached_code_obj_info.compute_force_stay_in_untraced_mode(breakpoints) + func_code_info.breakpoint_found = breakpoint_found + + elif function_breakpoint: + # Go directly into tracing mode + func_code_info.breakpoint_found = True + func_code_info.new_code = None + + elif breakpoints: + # if DEBUG: + # print('found breakpoints', code_obj_py.co_name, breakpoints) + + # Note: new_code can be None if unable to generate. + # It should automatically put the new code object in the cache. + breakpoint_found, func_code_info.new_code = generate_code_with_breakpoints(code_obj_py, breakpoints) + func_code_info.breakpoint_found = breakpoint_found + + Py_INCREF(func_code_info) + _PyCode_SetExtra( code_obj, _code_extra_index, func_code_info) + + return func_code_info + + +cdef class _CodeLineInfo: + + cdef public dict line_to_offset + cdef public int first_line + cdef public int last_line + + def __init__(self, dict line_to_offset, int first_line, int last_line): + self.line_to_offset = line_to_offset + self.first_line = first_line + self.last_line = last_line + + +# Note: this method has a version in pure-python too. +def _get_code_line_info(code_obj): + line_to_offset: dict = {} + first_line: int = None + last_line: int = None + + cdef int offset + cdef int line + + for offset, line in dis.findlinestarts(code_obj): + line_to_offset[line] = offset + + if line_to_offset: + first_line = min(line_to_offset) + last_line = max(line_to_offset) + return _CodeLineInfo(line_to_offset, first_line, last_line) + + +# Note: this is a cache where the key is the code objects we create ourselves so that +# we always return the same code object for generators. +# (so, we don't have a cache from the old code to the new info -- that's actually +# handled by the cython side in `FuncCodeInfo get_func_code_info` by providing the +# same code info if the debugger mtime is still the same). +_cache: dict = {} + +def get_cached_code_obj_info_py(code_obj_py): + ''' + :return _CacheValue: + :note: on cython use _cache.get(code_obj_py) directly. + ''' + return _cache.get(code_obj_py) + + +cdef class _CacheValue(object): + + cdef public object code_obj_py + cdef public _CodeLineInfo code_line_info + cdef public set breakpoints_hit_at_lines + cdef public set code_lines_as_set + + def __init__(self, object code_obj_py, _CodeLineInfo code_line_info, set breakpoints_hit_at_lines): + ''' + :param code_obj_py: + :param _CodeLineInfo code_line_info: + :param set[int] breakpoints_hit_at_lines: + ''' + self.code_obj_py = code_obj_py + self.code_line_info = code_line_info + self.breakpoints_hit_at_lines = breakpoints_hit_at_lines + self.code_lines_as_set = set(code_line_info.line_to_offset) + + cpdef compute_force_stay_in_untraced_mode(self, breakpoints): + ''' + :param breakpoints: + set(breakpoint_lines) or dict(breakpoint_line->breakpoint info) + :return tuple(breakpoint_found, force_stay_in_untraced_mode) + ''' + cdef bint force_stay_in_untraced_mode + cdef bint breakpoint_found + cdef set target_breakpoints + + force_stay_in_untraced_mode = False + + target_breakpoints = self.code_lines_as_set.intersection(breakpoints) + breakpoint_found = bool(target_breakpoints) + + if not breakpoint_found: + force_stay_in_untraced_mode = True + else: + force_stay_in_untraced_mode = self.breakpoints_hit_at_lines.issuperset(set(breakpoints)) + + return breakpoint_found, force_stay_in_untraced_mode + +def generate_code_with_breakpoints_py(object code_obj_py, dict breakpoints): + return generate_code_with_breakpoints(code_obj_py, breakpoints) + +# DEBUG = True +# debug_helper = DebugHelper() + +cdef generate_code_with_breakpoints(object code_obj_py, dict breakpoints): + ''' + :param breakpoints: + dict where the keys are the breakpoint lines. + :return tuple(breakpoint_found, new_code) + ''' + # The cache is needed for generator functions, because after each yield a new frame + # is created but the former code object is used (so, check if code_to_modify is + # already there and if not cache based on the new code generated). + + cdef bint success + cdef int breakpoint_line + cdef bint breakpoint_found + cdef _CacheValue cache_value + cdef set breakpoints_hit_at_lines + cdef dict line_to_offset + + assert code_obj_py not in _cache, 'If a code object is cached, that same code object must be reused.' + +# if DEBUG: +# initial_code_obj_py = code_obj_py + + code_line_info = _get_code_line_info(code_obj_py) + + success = True + + breakpoints_hit_at_lines = set() + line_to_offset = code_line_info.line_to_offset + + for breakpoint_line in breakpoints: + if breakpoint_line in line_to_offset: + breakpoints_hit_at_lines.add(breakpoint_line) + + if breakpoints_hit_at_lines: + success, new_code = insert_pydevd_breaks( + code_obj_py, + breakpoints_hit_at_lines, + code_line_info + ) + + if not success: + code_obj_py = None + else: + code_obj_py = new_code + + breakpoint_found = bool(breakpoints_hit_at_lines) + if breakpoint_found and success: +# if DEBUG: +# op_number = debug_helper.write_dis( +# 'inserting code, breaks at: %s' % (list(breakpoints),), +# initial_code_obj_py +# ) +# +# debug_helper.write_dis( +# 'after inserting code, breaks at: %s' % (list(breakpoints,)), +# code_obj_py, +# op_number=op_number, +# ) + + cache_value = _CacheValue(code_obj_py, code_line_info, breakpoints_hit_at_lines) + _cache[code_obj_py] = cache_value + + return breakpoint_found, code_obj_py + +import sys + +cdef bint IS_PY_39_OWNARDS = sys.version_info[:2] >= (3, 9) + +def frame_eval_func(): + cdef PyThreadState *state = PyThreadState_Get() + if IS_PY_39_OWNARDS: + state.interp.eval_frame = <_PyFrameEvalFunction *> get_bytecode_while_frame_eval_39 + else: + state.interp.eval_frame = <_PyFrameEvalFunction *> get_bytecode_while_frame_eval_38 + dummy_tracing_holder.set_trace_func(dummy_trace_dispatch) + + +def stop_frame_eval(): + cdef PyThreadState *state = PyThreadState_Get() + state.interp.eval_frame = _PyEval_EvalFrameDefault + +# During the build we'll generate 2 versions of the code below so that we're compatible with +# Python 3.9, which receives a "PyThreadState* tstate" as the first parameter and Python 3.6-3.8 +# which doesn't. +### WARNING: GENERATED CODE, DO NOT EDIT! +### WARNING: GENERATED CODE, DO NOT EDIT! +### WARNING: GENERATED CODE, DO NOT EDIT! +cdef PyObject * get_bytecode_while_frame_eval_38(PyFrameObject * frame_obj, int exc): + ''' + This function makes the actual evaluation and changes the bytecode to a version + where programmatic breakpoints are added. + ''' + if GlobalDebuggerHolder is None or _thread_local_info is None or exc: + # Sometimes during process shutdown these global variables become None + return CALL_EvalFrameDefault_38(frame_obj, exc) + + # co_filename: str = frame_obj.f_code.co_filename + # if co_filename.endswith('threading.py'): + # return CALL_EvalFrameDefault_38(frame_obj, exc) + + cdef ThreadInfo thread_info + cdef int STATE_SUSPEND = 2 + cdef int CMD_STEP_INTO = 107 + cdef int CMD_STEP_OVER = 108 + cdef int CMD_STEP_OVER_MY_CODE = 159 + cdef int CMD_STEP_INTO_MY_CODE = 144 + cdef int CMD_STEP_INTO_COROUTINE = 206 + cdef int CMD_SMART_STEP_INTO = 128 + cdef bint can_skip = True + try: + thread_info = _thread_local_info.thread_info + except: + thread_info = get_thread_info(frame_obj) + if thread_info is None: + return CALL_EvalFrameDefault_38(frame_obj, exc) + + if thread_info.inside_frame_eval: + return CALL_EvalFrameDefault_38(frame_obj, exc) + + if not thread_info.fully_initialized: + thread_info.initialize_if_possible() + if not thread_info.fully_initialized: + return CALL_EvalFrameDefault_38(frame_obj, exc) + + # Can only get additional_info when fully initialized. + cdef PyDBAdditionalThreadInfo additional_info = thread_info.additional_info + if thread_info.is_pydevd_thread or additional_info.is_tracing: + # Make sure that we don't trace pydevd threads or inside our own calls. + return CALL_EvalFrameDefault_38(frame_obj, exc) + + # frame = frame_obj + # DEBUG = frame.f_code.co_filename.endswith('_debugger_case_tracing.py') + # if DEBUG: + # print('get_bytecode_while_frame_eval', frame.f_lineno, frame.f_code.co_name, frame.f_code.co_filename) + + thread_info.inside_frame_eval += 1 + additional_info.is_tracing = True + try: + main_debugger: object = GlobalDebuggerHolder.global_dbg + if main_debugger is None: + return CALL_EvalFrameDefault_38(frame_obj, exc) + frame = frame_obj + + if thread_info.thread_trace_func is None: + trace_func, apply_to_global = fix_top_level_trace_and_get_trace_func(main_debugger, frame) + if apply_to_global: + thread_info.thread_trace_func = trace_func + + if additional_info.pydev_step_cmd in (CMD_STEP_INTO, CMD_STEP_INTO_MY_CODE, CMD_STEP_INTO_COROUTINE, CMD_SMART_STEP_INTO) or \ + main_debugger.break_on_caught_exceptions or \ + main_debugger.break_on_user_uncaught_exceptions or \ + main_debugger.has_plugin_exception_breaks or \ + main_debugger.signature_factory or \ + additional_info.pydev_step_cmd in (CMD_STEP_OVER, CMD_STEP_OVER_MY_CODE) and main_debugger.show_return_values and frame.f_back is additional_info.pydev_step_stop: + + # if DEBUG: + # print('get_bytecode_while_frame_eval enabled trace') + if thread_info.thread_trace_func is not None: + frame.f_trace = thread_info.thread_trace_func + else: + frame.f_trace = main_debugger.trace_dispatch + else: + func_code_info: FuncCodeInfo = get_func_code_info(thread_info, frame_obj, frame_obj.f_code) + # if DEBUG: + # print('get_bytecode_while_frame_eval always skip', func_code_info.always_skip_code) + if not func_code_info.always_skip_code: + + if main_debugger.has_plugin_line_breaks or main_debugger.has_plugin_exception_breaks: + can_skip = main_debugger.plugin.can_skip(main_debugger, frame_obj) + + if not can_skip: + # if DEBUG: + # print('get_bytecode_while_frame_eval not can_skip') + if thread_info.thread_trace_func is not None: + frame.f_trace = thread_info.thread_trace_func + else: + frame.f_trace = main_debugger.trace_dispatch + + if can_skip and func_code_info.breakpoint_found: + # if DEBUG: + # print('get_bytecode_while_frame_eval new_code', func_code_info.new_code) + if not thread_info.force_stay_in_untraced_mode: + # If breakpoints are found but new_code is None, + # this means we weren't able to actually add the code + # where needed, so, fallback to tracing. + if func_code_info.new_code is None: + if thread_info.thread_trace_func is not None: + frame.f_trace = thread_info.thread_trace_func + else: + frame.f_trace = main_debugger.trace_dispatch + else: + # print('Using frame eval break for', frame_obj.f_code.co_name) + update_globals_dict( frame_obj.f_globals) + Py_INCREF(func_code_info.new_code) + old = frame_obj.f_code + frame_obj.f_code = func_code_info.new_code + Py_DECREF(old) + else: + # When we're forcing to stay in traced mode we need to + # update the globals dict (because this means that we're reusing + # a previous code which had breakpoints added in a new frame). + update_globals_dict( frame_obj.f_globals) + + finally: + thread_info.inside_frame_eval -= 1 + additional_info.is_tracing = False + + return CALL_EvalFrameDefault_38(frame_obj, exc) +### WARNING: GENERATED CODE, DO NOT EDIT! +### WARNING: GENERATED CODE, DO NOT EDIT! +### WARNING: GENERATED CODE, DO NOT EDIT! + + +### WARNING: GENERATED CODE, DO NOT EDIT! +### WARNING: GENERATED CODE, DO NOT EDIT! +### WARNING: GENERATED CODE, DO NOT EDIT! +cdef PyObject * get_bytecode_while_frame_eval_39(PyThreadState* tstate, PyFrameObject * frame_obj, int exc): + ''' + This function makes the actual evaluation and changes the bytecode to a version + where programmatic breakpoints are added. + ''' + if GlobalDebuggerHolder is None or _thread_local_info is None or exc: + # Sometimes during process shutdown these global variables become None + return CALL_EvalFrameDefault_39(tstate, frame_obj, exc) + + # co_filename: str = frame_obj.f_code.co_filename + # if co_filename.endswith('threading.py'): + # return CALL_EvalFrameDefault_39(tstate, frame_obj, exc) + + cdef ThreadInfo thread_info + cdef int STATE_SUSPEND = 2 + cdef int CMD_STEP_INTO = 107 + cdef int CMD_STEP_OVER = 108 + cdef int CMD_STEP_OVER_MY_CODE = 159 + cdef int CMD_STEP_INTO_MY_CODE = 144 + cdef int CMD_STEP_INTO_COROUTINE = 206 + cdef int CMD_SMART_STEP_INTO = 128 + cdef bint can_skip = True + try: + thread_info = _thread_local_info.thread_info + except: + thread_info = get_thread_info(frame_obj) + if thread_info is None: + return CALL_EvalFrameDefault_39(tstate, frame_obj, exc) + + if thread_info.inside_frame_eval: + return CALL_EvalFrameDefault_39(tstate, frame_obj, exc) + + if not thread_info.fully_initialized: + thread_info.initialize_if_possible() + if not thread_info.fully_initialized: + return CALL_EvalFrameDefault_39(tstate, frame_obj, exc) + + # Can only get additional_info when fully initialized. + cdef PyDBAdditionalThreadInfo additional_info = thread_info.additional_info + if thread_info.is_pydevd_thread or additional_info.is_tracing: + # Make sure that we don't trace pydevd threads or inside our own calls. + return CALL_EvalFrameDefault_39(tstate, frame_obj, exc) + + # frame = frame_obj + # DEBUG = frame.f_code.co_filename.endswith('_debugger_case_tracing.py') + # if DEBUG: + # print('get_bytecode_while_frame_eval', frame.f_lineno, frame.f_code.co_name, frame.f_code.co_filename) + + thread_info.inside_frame_eval += 1 + additional_info.is_tracing = True + try: + main_debugger: object = GlobalDebuggerHolder.global_dbg + if main_debugger is None: + return CALL_EvalFrameDefault_39(tstate, frame_obj, exc) + frame = frame_obj + + if thread_info.thread_trace_func is None: + trace_func, apply_to_global = fix_top_level_trace_and_get_trace_func(main_debugger, frame) + if apply_to_global: + thread_info.thread_trace_func = trace_func + + if additional_info.pydev_step_cmd in (CMD_STEP_INTO, CMD_STEP_INTO_MY_CODE, CMD_STEP_INTO_COROUTINE, CMD_SMART_STEP_INTO) or \ + main_debugger.break_on_caught_exceptions or \ + main_debugger.break_on_user_uncaught_exceptions or \ + main_debugger.has_plugin_exception_breaks or \ + main_debugger.signature_factory or \ + additional_info.pydev_step_cmd in (CMD_STEP_OVER, CMD_STEP_OVER_MY_CODE) and main_debugger.show_return_values and frame.f_back is additional_info.pydev_step_stop: + + # if DEBUG: + # print('get_bytecode_while_frame_eval enabled trace') + if thread_info.thread_trace_func is not None: + frame.f_trace = thread_info.thread_trace_func + else: + frame.f_trace = main_debugger.trace_dispatch + else: + func_code_info: FuncCodeInfo = get_func_code_info(thread_info, frame_obj, frame_obj.f_code) + # if DEBUG: + # print('get_bytecode_while_frame_eval always skip', func_code_info.always_skip_code) + if not func_code_info.always_skip_code: + + if main_debugger.has_plugin_line_breaks or main_debugger.has_plugin_exception_breaks: + can_skip = main_debugger.plugin.can_skip(main_debugger, frame_obj) + + if not can_skip: + # if DEBUG: + # print('get_bytecode_while_frame_eval not can_skip') + if thread_info.thread_trace_func is not None: + frame.f_trace = thread_info.thread_trace_func + else: + frame.f_trace = main_debugger.trace_dispatch + + if can_skip and func_code_info.breakpoint_found: + # if DEBUG: + # print('get_bytecode_while_frame_eval new_code', func_code_info.new_code) + if not thread_info.force_stay_in_untraced_mode: + # If breakpoints are found but new_code is None, + # this means we weren't able to actually add the code + # where needed, so, fallback to tracing. + if func_code_info.new_code is None: + if thread_info.thread_trace_func is not None: + frame.f_trace = thread_info.thread_trace_func + else: + frame.f_trace = main_debugger.trace_dispatch + else: + # print('Using frame eval break for', frame_obj.f_code.co_name) + update_globals_dict( frame_obj.f_globals) + Py_INCREF(func_code_info.new_code) + old = frame_obj.f_code + frame_obj.f_code = func_code_info.new_code + Py_DECREF(old) + else: + # When we're forcing to stay in traced mode we need to + # update the globals dict (because this means that we're reusing + # a previous code which had breakpoints added in a new frame). + update_globals_dict( frame_obj.f_globals) + + finally: + thread_info.inside_frame_eval -= 1 + additional_info.is_tracing = False + + return CALL_EvalFrameDefault_39(tstate, frame_obj, exc) +### WARNING: GENERATED CODE, DO NOT EDIT! +### WARNING: GENERATED CODE, DO NOT EDIT! +### WARNING: GENERATED CODE, DO NOT EDIT! + diff --git a/apierr/errors.go b/apierr/errors.go index f794cc62a..940571a59 100644 --- a/apierr/errors.go +++ b/apierr/errors.go @@ -65,11 +65,7 @@ func (apiError *APIError) Error() string { // IsMissing tells if error is about missing resource func IsMissing(err error) bool { - var apiError *APIError - if errors.As(err, &apiError) { - return apiError.IsMissing() - } - return false + return errors.Is(err, ErrNotFound) } // GetErrorInfo returns all entries in the list of error details of type `ErrorInfo`. @@ -93,12 +89,12 @@ func getDetailsByType(err error, errorDetailType string) []ErrorDetail { // IsMissing tells if it is missing resource func (apiError *APIError) IsMissing() bool { - return apiError.StatusCode == http.StatusNotFound + return errors.Is(apiError, ErrNotFound) } // IsTooManyRequests shows rate exceeded limits func (apiError *APIError) IsTooManyRequests() bool { - return apiError.StatusCode == http.StatusTooManyRequests + return errors.Is(apiError, ErrTooManyRequests) } // isRetriable returns true if error is retriable diff --git a/experimental/mocks/service/billing/mock_budgets_interface.go b/experimental/mocks/service/billing/mock_budgets_interface.go index 43072dada..ec2ad7e58 100644 --- a/experimental/mocks/service/billing/mock_budgets_interface.go +++ b/experimental/mocks/service/billing/mock_budgets_interface.go @@ -461,19 +461,19 @@ func (_c *MockBudgetsInterface_Impl_Call) RunAndReturn(run func() billing.Budget } // List provides a mock function with given fields: ctx -func (_m *MockBudgetsInterface) List(ctx context.Context) *listing.PaginatingIterator[struct{}, *billing.BudgetList, billing.BudgetWithStatus] { +func (_m *MockBudgetsInterface) List(ctx context.Context) listing.Iterator[billing.BudgetWithStatus] { ret := _m.Called(ctx) if len(ret) == 0 { panic("no return value specified for List") } - var r0 *listing.PaginatingIterator[struct{}, *billing.BudgetList, billing.BudgetWithStatus] - if rf, ok := ret.Get(0).(func(context.Context) *listing.PaginatingIterator[struct{}, *billing.BudgetList, billing.BudgetWithStatus]); ok { + var r0 listing.Iterator[billing.BudgetWithStatus] + if rf, ok := ret.Get(0).(func(context.Context) listing.Iterator[billing.BudgetWithStatus]); ok { r0 = rf(ctx) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.PaginatingIterator[struct{}, *billing.BudgetList, billing.BudgetWithStatus]) + r0 = ret.Get(0).(listing.Iterator[billing.BudgetWithStatus]) } } @@ -498,12 +498,12 @@ func (_c *MockBudgetsInterface_List_Call) Run(run func(ctx context.Context)) *Mo return _c } -func (_c *MockBudgetsInterface_List_Call) Return(_a0 *listing.PaginatingIterator[struct{}, *billing.BudgetList, billing.BudgetWithStatus]) *MockBudgetsInterface_List_Call { +func (_c *MockBudgetsInterface_List_Call) Return(_a0 listing.Iterator[billing.BudgetWithStatus]) *MockBudgetsInterface_List_Call { _c.Call.Return(_a0) return _c } -func (_c *MockBudgetsInterface_List_Call) RunAndReturn(run func(context.Context) *listing.PaginatingIterator[struct{}, *billing.BudgetList, billing.BudgetWithStatus]) *MockBudgetsInterface_List_Call { +func (_c *MockBudgetsInterface_List_Call) RunAndReturn(run func(context.Context) listing.Iterator[billing.BudgetWithStatus]) *MockBudgetsInterface_List_Call { _c.Call.Return(run) return _c } diff --git a/experimental/mocks/service/billing/mock_log_delivery_interface.go b/experimental/mocks/service/billing/mock_log_delivery_interface.go index 5393c87e9..6b5902407 100644 --- a/experimental/mocks/service/billing/mock_log_delivery_interface.go +++ b/experimental/mocks/service/billing/mock_log_delivery_interface.go @@ -309,19 +309,19 @@ func (_c *MockLogDeliveryInterface_Impl_Call) RunAndReturn(run func() billing.Lo } // List provides a mock function with given fields: ctx, request -func (_m *MockLogDeliveryInterface) List(ctx context.Context, request billing.ListLogDeliveryRequest) *listing.PaginatingIterator[billing.ListLogDeliveryRequest, *billing.WrappedLogDeliveryConfigurations, billing.LogDeliveryConfiguration] { +func (_m *MockLogDeliveryInterface) List(ctx context.Context, request billing.ListLogDeliveryRequest) listing.Iterator[billing.LogDeliveryConfiguration] { ret := _m.Called(ctx, request) if len(ret) == 0 { panic("no return value specified for List") } - var r0 *listing.PaginatingIterator[billing.ListLogDeliveryRequest, *billing.WrappedLogDeliveryConfigurations, billing.LogDeliveryConfiguration] - if rf, ok := ret.Get(0).(func(context.Context, billing.ListLogDeliveryRequest) *listing.PaginatingIterator[billing.ListLogDeliveryRequest, *billing.WrappedLogDeliveryConfigurations, billing.LogDeliveryConfiguration]); ok { + var r0 listing.Iterator[billing.LogDeliveryConfiguration] + if rf, ok := ret.Get(0).(func(context.Context, billing.ListLogDeliveryRequest) listing.Iterator[billing.LogDeliveryConfiguration]); ok { r0 = rf(ctx, request) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.PaginatingIterator[billing.ListLogDeliveryRequest, *billing.WrappedLogDeliveryConfigurations, billing.LogDeliveryConfiguration]) + r0 = ret.Get(0).(listing.Iterator[billing.LogDeliveryConfiguration]) } } @@ -347,12 +347,12 @@ func (_c *MockLogDeliveryInterface_List_Call) Run(run func(ctx context.Context, return _c } -func (_c *MockLogDeliveryInterface_List_Call) Return(_a0 *listing.PaginatingIterator[billing.ListLogDeliveryRequest, *billing.WrappedLogDeliveryConfigurations, billing.LogDeliveryConfiguration]) *MockLogDeliveryInterface_List_Call { +func (_c *MockLogDeliveryInterface_List_Call) Return(_a0 listing.Iterator[billing.LogDeliveryConfiguration]) *MockLogDeliveryInterface_List_Call { _c.Call.Return(_a0) return _c } -func (_c *MockLogDeliveryInterface_List_Call) RunAndReturn(run func(context.Context, billing.ListLogDeliveryRequest) *listing.PaginatingIterator[billing.ListLogDeliveryRequest, *billing.WrappedLogDeliveryConfigurations, billing.LogDeliveryConfiguration]) *MockLogDeliveryInterface_List_Call { +func (_c *MockLogDeliveryInterface_List_Call) RunAndReturn(run func(context.Context, billing.ListLogDeliveryRequest) listing.Iterator[billing.LogDeliveryConfiguration]) *MockLogDeliveryInterface_List_Call { _c.Call.Return(run) return _c } diff --git a/experimental/mocks/service/catalog/mock_account_metastore_assignments_interface.go b/experimental/mocks/service/catalog/mock_account_metastore_assignments_interface.go index 462740a2b..c0eafc873 100644 --- a/experimental/mocks/service/catalog/mock_account_metastore_assignments_interface.go +++ b/experimental/mocks/service/catalog/mock_account_metastore_assignments_interface.go @@ -333,19 +333,19 @@ func (_c *MockAccountMetastoreAssignmentsInterface_Impl_Call) RunAndReturn(run f } // List provides a mock function with given fields: ctx, request -func (_m *MockAccountMetastoreAssignmentsInterface) List(ctx context.Context, request catalog.ListAccountMetastoreAssignmentsRequest) *listing.PaginatingIterator[catalog.ListAccountMetastoreAssignmentsRequest, *catalog.ListAccountMetastoreAssignmentsResponse, int64] { +func (_m *MockAccountMetastoreAssignmentsInterface) List(ctx context.Context, request catalog.ListAccountMetastoreAssignmentsRequest) listing.Iterator[int64] { ret := _m.Called(ctx, request) if len(ret) == 0 { panic("no return value specified for List") } - var r0 *listing.PaginatingIterator[catalog.ListAccountMetastoreAssignmentsRequest, *catalog.ListAccountMetastoreAssignmentsResponse, int64] - if rf, ok := ret.Get(0).(func(context.Context, catalog.ListAccountMetastoreAssignmentsRequest) *listing.PaginatingIterator[catalog.ListAccountMetastoreAssignmentsRequest, *catalog.ListAccountMetastoreAssignmentsResponse, int64]); ok { + var r0 listing.Iterator[int64] + if rf, ok := ret.Get(0).(func(context.Context, catalog.ListAccountMetastoreAssignmentsRequest) listing.Iterator[int64]); ok { r0 = rf(ctx, request) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.PaginatingIterator[catalog.ListAccountMetastoreAssignmentsRequest, *catalog.ListAccountMetastoreAssignmentsResponse, int64]) + r0 = ret.Get(0).(listing.Iterator[int64]) } } @@ -371,12 +371,12 @@ func (_c *MockAccountMetastoreAssignmentsInterface_List_Call) Run(run func(ctx c return _c } -func (_c *MockAccountMetastoreAssignmentsInterface_List_Call) Return(_a0 *listing.PaginatingIterator[catalog.ListAccountMetastoreAssignmentsRequest, *catalog.ListAccountMetastoreAssignmentsResponse, int64]) *MockAccountMetastoreAssignmentsInterface_List_Call { +func (_c *MockAccountMetastoreAssignmentsInterface_List_Call) Return(_a0 listing.Iterator[int64]) *MockAccountMetastoreAssignmentsInterface_List_Call { _c.Call.Return(_a0) return _c } -func (_c *MockAccountMetastoreAssignmentsInterface_List_Call) RunAndReturn(run func(context.Context, catalog.ListAccountMetastoreAssignmentsRequest) *listing.PaginatingIterator[catalog.ListAccountMetastoreAssignmentsRequest, *catalog.ListAccountMetastoreAssignmentsResponse, int64]) *MockAccountMetastoreAssignmentsInterface_List_Call { +func (_c *MockAccountMetastoreAssignmentsInterface_List_Call) RunAndReturn(run func(context.Context, catalog.ListAccountMetastoreAssignmentsRequest) listing.Iterator[int64]) *MockAccountMetastoreAssignmentsInterface_List_Call { _c.Call.Return(run) return _c } diff --git a/experimental/mocks/service/catalog/mock_account_metastores_interface.go b/experimental/mocks/service/catalog/mock_account_metastores_interface.go index 2bbb7e0f3..038015372 100644 --- a/experimental/mocks/service/catalog/mock_account_metastores_interface.go +++ b/experimental/mocks/service/catalog/mock_account_metastores_interface.go @@ -344,19 +344,19 @@ func (_c *MockAccountMetastoresInterface_Impl_Call) RunAndReturn(run func() cata } // List provides a mock function with given fields: ctx -func (_m *MockAccountMetastoresInterface) List(ctx context.Context) *listing.PaginatingIterator[struct{}, *catalog.ListMetastoresResponse, catalog.MetastoreInfo] { +func (_m *MockAccountMetastoresInterface) List(ctx context.Context) listing.Iterator[catalog.MetastoreInfo] { ret := _m.Called(ctx) if len(ret) == 0 { panic("no return value specified for List") } - var r0 *listing.PaginatingIterator[struct{}, *catalog.ListMetastoresResponse, catalog.MetastoreInfo] - if rf, ok := ret.Get(0).(func(context.Context) *listing.PaginatingIterator[struct{}, *catalog.ListMetastoresResponse, catalog.MetastoreInfo]); ok { + var r0 listing.Iterator[catalog.MetastoreInfo] + if rf, ok := ret.Get(0).(func(context.Context) listing.Iterator[catalog.MetastoreInfo]); ok { r0 = rf(ctx) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.PaginatingIterator[struct{}, *catalog.ListMetastoresResponse, catalog.MetastoreInfo]) + r0 = ret.Get(0).(listing.Iterator[catalog.MetastoreInfo]) } } @@ -381,12 +381,12 @@ func (_c *MockAccountMetastoresInterface_List_Call) Run(run func(ctx context.Con return _c } -func (_c *MockAccountMetastoresInterface_List_Call) Return(_a0 *listing.PaginatingIterator[struct{}, *catalog.ListMetastoresResponse, catalog.MetastoreInfo]) *MockAccountMetastoresInterface_List_Call { +func (_c *MockAccountMetastoresInterface_List_Call) Return(_a0 listing.Iterator[catalog.MetastoreInfo]) *MockAccountMetastoresInterface_List_Call { _c.Call.Return(_a0) return _c } -func (_c *MockAccountMetastoresInterface_List_Call) RunAndReturn(run func(context.Context) *listing.PaginatingIterator[struct{}, *catalog.ListMetastoresResponse, catalog.MetastoreInfo]) *MockAccountMetastoresInterface_List_Call { +func (_c *MockAccountMetastoresInterface_List_Call) RunAndReturn(run func(context.Context) listing.Iterator[catalog.MetastoreInfo]) *MockAccountMetastoresInterface_List_Call { _c.Call.Return(run) return _c } diff --git a/experimental/mocks/service/catalog/mock_catalogs_interface.go b/experimental/mocks/service/catalog/mock_catalogs_interface.go index a8c5e1484..37af4cc61 100644 --- a/experimental/mocks/service/catalog/mock_catalogs_interface.go +++ b/experimental/mocks/service/catalog/mock_catalogs_interface.go @@ -344,19 +344,19 @@ func (_c *MockCatalogsInterface_Impl_Call) RunAndReturn(run func() catalog.Catal } // List provides a mock function with given fields: ctx -func (_m *MockCatalogsInterface) List(ctx context.Context) *listing.PaginatingIterator[struct{}, *catalog.ListCatalogsResponse, catalog.CatalogInfo] { +func (_m *MockCatalogsInterface) List(ctx context.Context) listing.Iterator[catalog.CatalogInfo] { ret := _m.Called(ctx) if len(ret) == 0 { panic("no return value specified for List") } - var r0 *listing.PaginatingIterator[struct{}, *catalog.ListCatalogsResponse, catalog.CatalogInfo] - if rf, ok := ret.Get(0).(func(context.Context) *listing.PaginatingIterator[struct{}, *catalog.ListCatalogsResponse, catalog.CatalogInfo]); ok { + var r0 listing.Iterator[catalog.CatalogInfo] + if rf, ok := ret.Get(0).(func(context.Context) listing.Iterator[catalog.CatalogInfo]); ok { r0 = rf(ctx) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.PaginatingIterator[struct{}, *catalog.ListCatalogsResponse, catalog.CatalogInfo]) + r0 = ret.Get(0).(listing.Iterator[catalog.CatalogInfo]) } } @@ -381,12 +381,12 @@ func (_c *MockCatalogsInterface_List_Call) Run(run func(ctx context.Context)) *M return _c } -func (_c *MockCatalogsInterface_List_Call) Return(_a0 *listing.PaginatingIterator[struct{}, *catalog.ListCatalogsResponse, catalog.CatalogInfo]) *MockCatalogsInterface_List_Call { +func (_c *MockCatalogsInterface_List_Call) Return(_a0 listing.Iterator[catalog.CatalogInfo]) *MockCatalogsInterface_List_Call { _c.Call.Return(_a0) return _c } -func (_c *MockCatalogsInterface_List_Call) RunAndReturn(run func(context.Context) *listing.PaginatingIterator[struct{}, *catalog.ListCatalogsResponse, catalog.CatalogInfo]) *MockCatalogsInterface_List_Call { +func (_c *MockCatalogsInterface_List_Call) RunAndReturn(run func(context.Context) listing.Iterator[catalog.CatalogInfo]) *MockCatalogsInterface_List_Call { _c.Call.Return(run) return _c } diff --git a/experimental/mocks/service/catalog/mock_connections_interface.go b/experimental/mocks/service/catalog/mock_connections_interface.go index 56720c818..7e38a5a83 100644 --- a/experimental/mocks/service/catalog/mock_connections_interface.go +++ b/experimental/mocks/service/catalog/mock_connections_interface.go @@ -461,19 +461,19 @@ func (_c *MockConnectionsInterface_Impl_Call) RunAndReturn(run func() catalog.Co } // List provides a mock function with given fields: ctx -func (_m *MockConnectionsInterface) List(ctx context.Context) *listing.PaginatingIterator[struct{}, *catalog.ListConnectionsResponse, catalog.ConnectionInfo] { +func (_m *MockConnectionsInterface) List(ctx context.Context) listing.Iterator[catalog.ConnectionInfo] { ret := _m.Called(ctx) if len(ret) == 0 { panic("no return value specified for List") } - var r0 *listing.PaginatingIterator[struct{}, *catalog.ListConnectionsResponse, catalog.ConnectionInfo] - if rf, ok := ret.Get(0).(func(context.Context) *listing.PaginatingIterator[struct{}, *catalog.ListConnectionsResponse, catalog.ConnectionInfo]); ok { + var r0 listing.Iterator[catalog.ConnectionInfo] + if rf, ok := ret.Get(0).(func(context.Context) listing.Iterator[catalog.ConnectionInfo]); ok { r0 = rf(ctx) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.PaginatingIterator[struct{}, *catalog.ListConnectionsResponse, catalog.ConnectionInfo]) + r0 = ret.Get(0).(listing.Iterator[catalog.ConnectionInfo]) } } @@ -498,12 +498,12 @@ func (_c *MockConnectionsInterface_List_Call) Run(run func(ctx context.Context)) return _c } -func (_c *MockConnectionsInterface_List_Call) Return(_a0 *listing.PaginatingIterator[struct{}, *catalog.ListConnectionsResponse, catalog.ConnectionInfo]) *MockConnectionsInterface_List_Call { +func (_c *MockConnectionsInterface_List_Call) Return(_a0 listing.Iterator[catalog.ConnectionInfo]) *MockConnectionsInterface_List_Call { _c.Call.Return(_a0) return _c } -func (_c *MockConnectionsInterface_List_Call) RunAndReturn(run func(context.Context) *listing.PaginatingIterator[struct{}, *catalog.ListConnectionsResponse, catalog.ConnectionInfo]) *MockConnectionsInterface_List_Call { +func (_c *MockConnectionsInterface_List_Call) RunAndReturn(run func(context.Context) listing.Iterator[catalog.ConnectionInfo]) *MockConnectionsInterface_List_Call { _c.Call.Return(run) return _c } diff --git a/experimental/mocks/service/catalog/mock_external_locations_interface.go b/experimental/mocks/service/catalog/mock_external_locations_interface.go index 3d87dd5ed..8e8f84714 100644 --- a/experimental/mocks/service/catalog/mock_external_locations_interface.go +++ b/experimental/mocks/service/catalog/mock_external_locations_interface.go @@ -344,19 +344,19 @@ func (_c *MockExternalLocationsInterface_Impl_Call) RunAndReturn(run func() cata } // List provides a mock function with given fields: ctx, request -func (_m *MockExternalLocationsInterface) List(ctx context.Context, request catalog.ListExternalLocationsRequest) *listing.PaginatingIterator[catalog.ListExternalLocationsRequest, *catalog.ListExternalLocationsResponse, catalog.ExternalLocationInfo] { +func (_m *MockExternalLocationsInterface) List(ctx context.Context, request catalog.ListExternalLocationsRequest) listing.Iterator[catalog.ExternalLocationInfo] { ret := _m.Called(ctx, request) if len(ret) == 0 { panic("no return value specified for List") } - var r0 *listing.PaginatingIterator[catalog.ListExternalLocationsRequest, *catalog.ListExternalLocationsResponse, catalog.ExternalLocationInfo] - if rf, ok := ret.Get(0).(func(context.Context, catalog.ListExternalLocationsRequest) *listing.PaginatingIterator[catalog.ListExternalLocationsRequest, *catalog.ListExternalLocationsResponse, catalog.ExternalLocationInfo]); ok { + var r0 listing.Iterator[catalog.ExternalLocationInfo] + if rf, ok := ret.Get(0).(func(context.Context, catalog.ListExternalLocationsRequest) listing.Iterator[catalog.ExternalLocationInfo]); ok { r0 = rf(ctx, request) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.PaginatingIterator[catalog.ListExternalLocationsRequest, *catalog.ListExternalLocationsResponse, catalog.ExternalLocationInfo]) + r0 = ret.Get(0).(listing.Iterator[catalog.ExternalLocationInfo]) } } @@ -382,12 +382,12 @@ func (_c *MockExternalLocationsInterface_List_Call) Run(run func(ctx context.Con return _c } -func (_c *MockExternalLocationsInterface_List_Call) Return(_a0 *listing.PaginatingIterator[catalog.ListExternalLocationsRequest, *catalog.ListExternalLocationsResponse, catalog.ExternalLocationInfo]) *MockExternalLocationsInterface_List_Call { +func (_c *MockExternalLocationsInterface_List_Call) Return(_a0 listing.Iterator[catalog.ExternalLocationInfo]) *MockExternalLocationsInterface_List_Call { _c.Call.Return(_a0) return _c } -func (_c *MockExternalLocationsInterface_List_Call) RunAndReturn(run func(context.Context, catalog.ListExternalLocationsRequest) *listing.PaginatingIterator[catalog.ListExternalLocationsRequest, *catalog.ListExternalLocationsResponse, catalog.ExternalLocationInfo]) *MockExternalLocationsInterface_List_Call { +func (_c *MockExternalLocationsInterface_List_Call) RunAndReturn(run func(context.Context, catalog.ListExternalLocationsRequest) listing.Iterator[catalog.ExternalLocationInfo]) *MockExternalLocationsInterface_List_Call { _c.Call.Return(run) return _c } diff --git a/experimental/mocks/service/catalog/mock_functions_interface.go b/experimental/mocks/service/catalog/mock_functions_interface.go index f1c930b1e..c275e97c5 100644 --- a/experimental/mocks/service/catalog/mock_functions_interface.go +++ b/experimental/mocks/service/catalog/mock_functions_interface.go @@ -403,19 +403,19 @@ func (_c *MockFunctionsInterface_Impl_Call) RunAndReturn(run func() catalog.Func } // List provides a mock function with given fields: ctx, request -func (_m *MockFunctionsInterface) List(ctx context.Context, request catalog.ListFunctionsRequest) *listing.PaginatingIterator[catalog.ListFunctionsRequest, *catalog.ListFunctionsResponse, catalog.FunctionInfo] { +func (_m *MockFunctionsInterface) List(ctx context.Context, request catalog.ListFunctionsRequest) listing.Iterator[catalog.FunctionInfo] { ret := _m.Called(ctx, request) if len(ret) == 0 { panic("no return value specified for List") } - var r0 *listing.PaginatingIterator[catalog.ListFunctionsRequest, *catalog.ListFunctionsResponse, catalog.FunctionInfo] - if rf, ok := ret.Get(0).(func(context.Context, catalog.ListFunctionsRequest) *listing.PaginatingIterator[catalog.ListFunctionsRequest, *catalog.ListFunctionsResponse, catalog.FunctionInfo]); ok { + var r0 listing.Iterator[catalog.FunctionInfo] + if rf, ok := ret.Get(0).(func(context.Context, catalog.ListFunctionsRequest) listing.Iterator[catalog.FunctionInfo]); ok { r0 = rf(ctx, request) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.PaginatingIterator[catalog.ListFunctionsRequest, *catalog.ListFunctionsResponse, catalog.FunctionInfo]) + r0 = ret.Get(0).(listing.Iterator[catalog.FunctionInfo]) } } @@ -441,12 +441,12 @@ func (_c *MockFunctionsInterface_List_Call) Run(run func(ctx context.Context, re return _c } -func (_c *MockFunctionsInterface_List_Call) Return(_a0 *listing.PaginatingIterator[catalog.ListFunctionsRequest, *catalog.ListFunctionsResponse, catalog.FunctionInfo]) *MockFunctionsInterface_List_Call { +func (_c *MockFunctionsInterface_List_Call) Return(_a0 listing.Iterator[catalog.FunctionInfo]) *MockFunctionsInterface_List_Call { _c.Call.Return(_a0) return _c } -func (_c *MockFunctionsInterface_List_Call) RunAndReturn(run func(context.Context, catalog.ListFunctionsRequest) *listing.PaginatingIterator[catalog.ListFunctionsRequest, *catalog.ListFunctionsResponse, catalog.FunctionInfo]) *MockFunctionsInterface_List_Call { +func (_c *MockFunctionsInterface_List_Call) RunAndReturn(run func(context.Context, catalog.ListFunctionsRequest) listing.Iterator[catalog.FunctionInfo]) *MockFunctionsInterface_List_Call { _c.Call.Return(run) return _c } diff --git a/experimental/mocks/service/catalog/mock_metastores_interface.go b/experimental/mocks/service/catalog/mock_metastores_interface.go index 741925ec9..ace17f441 100644 --- a/experimental/mocks/service/catalog/mock_metastores_interface.go +++ b/experimental/mocks/service/catalog/mock_metastores_interface.go @@ -508,19 +508,19 @@ func (_c *MockMetastoresInterface_Impl_Call) RunAndReturn(run func() catalog.Met } // List provides a mock function with given fields: ctx -func (_m *MockMetastoresInterface) List(ctx context.Context) *listing.PaginatingIterator[struct{}, *catalog.ListMetastoresResponse, catalog.MetastoreInfo] { +func (_m *MockMetastoresInterface) List(ctx context.Context) listing.Iterator[catalog.MetastoreInfo] { ret := _m.Called(ctx) if len(ret) == 0 { panic("no return value specified for List") } - var r0 *listing.PaginatingIterator[struct{}, *catalog.ListMetastoresResponse, catalog.MetastoreInfo] - if rf, ok := ret.Get(0).(func(context.Context) *listing.PaginatingIterator[struct{}, *catalog.ListMetastoresResponse, catalog.MetastoreInfo]); ok { + var r0 listing.Iterator[catalog.MetastoreInfo] + if rf, ok := ret.Get(0).(func(context.Context) listing.Iterator[catalog.MetastoreInfo]); ok { r0 = rf(ctx) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.PaginatingIterator[struct{}, *catalog.ListMetastoresResponse, catalog.MetastoreInfo]) + r0 = ret.Get(0).(listing.Iterator[catalog.MetastoreInfo]) } } @@ -545,12 +545,12 @@ func (_c *MockMetastoresInterface_List_Call) Run(run func(ctx context.Context)) return _c } -func (_c *MockMetastoresInterface_List_Call) Return(_a0 *listing.PaginatingIterator[struct{}, *catalog.ListMetastoresResponse, catalog.MetastoreInfo]) *MockMetastoresInterface_List_Call { +func (_c *MockMetastoresInterface_List_Call) Return(_a0 listing.Iterator[catalog.MetastoreInfo]) *MockMetastoresInterface_List_Call { _c.Call.Return(_a0) return _c } -func (_c *MockMetastoresInterface_List_Call) RunAndReturn(run func(context.Context) *listing.PaginatingIterator[struct{}, *catalog.ListMetastoresResponse, catalog.MetastoreInfo]) *MockMetastoresInterface_List_Call { +func (_c *MockMetastoresInterface_List_Call) RunAndReturn(run func(context.Context) listing.Iterator[catalog.MetastoreInfo]) *MockMetastoresInterface_List_Call { _c.Call.Return(run) return _c } diff --git a/experimental/mocks/service/catalog/mock_model_versions_interface.go b/experimental/mocks/service/catalog/mock_model_versions_interface.go index a665e781a..d35085f51 100644 --- a/experimental/mocks/service/catalog/mock_model_versions_interface.go +++ b/experimental/mocks/service/catalog/mock_model_versions_interface.go @@ -406,19 +406,19 @@ func (_c *MockModelVersionsInterface_Impl_Call) RunAndReturn(run func() catalog. } // List provides a mock function with given fields: ctx, request -func (_m *MockModelVersionsInterface) List(ctx context.Context, request catalog.ListModelVersionsRequest) *listing.PaginatingIterator[catalog.ListModelVersionsRequest, *catalog.ListModelVersionsResponse, catalog.ModelVersionInfo] { +func (_m *MockModelVersionsInterface) List(ctx context.Context, request catalog.ListModelVersionsRequest) listing.Iterator[catalog.ModelVersionInfo] { ret := _m.Called(ctx, request) if len(ret) == 0 { panic("no return value specified for List") } - var r0 *listing.PaginatingIterator[catalog.ListModelVersionsRequest, *catalog.ListModelVersionsResponse, catalog.ModelVersionInfo] - if rf, ok := ret.Get(0).(func(context.Context, catalog.ListModelVersionsRequest) *listing.PaginatingIterator[catalog.ListModelVersionsRequest, *catalog.ListModelVersionsResponse, catalog.ModelVersionInfo]); ok { + var r0 listing.Iterator[catalog.ModelVersionInfo] + if rf, ok := ret.Get(0).(func(context.Context, catalog.ListModelVersionsRequest) listing.Iterator[catalog.ModelVersionInfo]); ok { r0 = rf(ctx, request) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.PaginatingIterator[catalog.ListModelVersionsRequest, *catalog.ListModelVersionsResponse, catalog.ModelVersionInfo]) + r0 = ret.Get(0).(listing.Iterator[catalog.ModelVersionInfo]) } } @@ -444,12 +444,12 @@ func (_c *MockModelVersionsInterface_List_Call) Run(run func(ctx context.Context return _c } -func (_c *MockModelVersionsInterface_List_Call) Return(_a0 *listing.PaginatingIterator[catalog.ListModelVersionsRequest, *catalog.ListModelVersionsResponse, catalog.ModelVersionInfo]) *MockModelVersionsInterface_List_Call { +func (_c *MockModelVersionsInterface_List_Call) Return(_a0 listing.Iterator[catalog.ModelVersionInfo]) *MockModelVersionsInterface_List_Call { _c.Call.Return(_a0) return _c } -func (_c *MockModelVersionsInterface_List_Call) RunAndReturn(run func(context.Context, catalog.ListModelVersionsRequest) *listing.PaginatingIterator[catalog.ListModelVersionsRequest, *catalog.ListModelVersionsResponse, catalog.ModelVersionInfo]) *MockModelVersionsInterface_List_Call { +func (_c *MockModelVersionsInterface_List_Call) RunAndReturn(run func(context.Context, catalog.ListModelVersionsRequest) listing.Iterator[catalog.ModelVersionInfo]) *MockModelVersionsInterface_List_Call { _c.Call.Return(run) return _c } diff --git a/experimental/mocks/service/catalog/mock_registered_models_interface.go b/experimental/mocks/service/catalog/mock_registered_models_interface.go index df77bfa81..4e21dae4c 100644 --- a/experimental/mocks/service/catalog/mock_registered_models_interface.go +++ b/experimental/mocks/service/catalog/mock_registered_models_interface.go @@ -498,19 +498,19 @@ func (_c *MockRegisteredModelsInterface_Impl_Call) RunAndReturn(run func() catal } // List provides a mock function with given fields: ctx, request -func (_m *MockRegisteredModelsInterface) List(ctx context.Context, request catalog.ListRegisteredModelsRequest) *listing.PaginatingIterator[catalog.ListRegisteredModelsRequest, *catalog.ListRegisteredModelsResponse, catalog.RegisteredModelInfo] { +func (_m *MockRegisteredModelsInterface) List(ctx context.Context, request catalog.ListRegisteredModelsRequest) listing.Iterator[catalog.RegisteredModelInfo] { ret := _m.Called(ctx, request) if len(ret) == 0 { panic("no return value specified for List") } - var r0 *listing.PaginatingIterator[catalog.ListRegisteredModelsRequest, *catalog.ListRegisteredModelsResponse, catalog.RegisteredModelInfo] - if rf, ok := ret.Get(0).(func(context.Context, catalog.ListRegisteredModelsRequest) *listing.PaginatingIterator[catalog.ListRegisteredModelsRequest, *catalog.ListRegisteredModelsResponse, catalog.RegisteredModelInfo]); ok { + var r0 listing.Iterator[catalog.RegisteredModelInfo] + if rf, ok := ret.Get(0).(func(context.Context, catalog.ListRegisteredModelsRequest) listing.Iterator[catalog.RegisteredModelInfo]); ok { r0 = rf(ctx, request) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.PaginatingIterator[catalog.ListRegisteredModelsRequest, *catalog.ListRegisteredModelsResponse, catalog.RegisteredModelInfo]) + r0 = ret.Get(0).(listing.Iterator[catalog.RegisteredModelInfo]) } } @@ -536,12 +536,12 @@ func (_c *MockRegisteredModelsInterface_List_Call) Run(run func(ctx context.Cont return _c } -func (_c *MockRegisteredModelsInterface_List_Call) Return(_a0 *listing.PaginatingIterator[catalog.ListRegisteredModelsRequest, *catalog.ListRegisteredModelsResponse, catalog.RegisteredModelInfo]) *MockRegisteredModelsInterface_List_Call { +func (_c *MockRegisteredModelsInterface_List_Call) Return(_a0 listing.Iterator[catalog.RegisteredModelInfo]) *MockRegisteredModelsInterface_List_Call { _c.Call.Return(_a0) return _c } -func (_c *MockRegisteredModelsInterface_List_Call) RunAndReturn(run func(context.Context, catalog.ListRegisteredModelsRequest) *listing.PaginatingIterator[catalog.ListRegisteredModelsRequest, *catalog.ListRegisteredModelsResponse, catalog.RegisteredModelInfo]) *MockRegisteredModelsInterface_List_Call { +func (_c *MockRegisteredModelsInterface_List_Call) RunAndReturn(run func(context.Context, catalog.ListRegisteredModelsRequest) listing.Iterator[catalog.RegisteredModelInfo]) *MockRegisteredModelsInterface_List_Call { _c.Call.Return(run) return _c } diff --git a/experimental/mocks/service/catalog/mock_schemas_interface.go b/experimental/mocks/service/catalog/mock_schemas_interface.go index 62d4c2975..3509dc0e1 100644 --- a/experimental/mocks/service/catalog/mock_schemas_interface.go +++ b/experimental/mocks/service/catalog/mock_schemas_interface.go @@ -403,19 +403,19 @@ func (_c *MockSchemasInterface_Impl_Call) RunAndReturn(run func() catalog.Schema } // List provides a mock function with given fields: ctx, request -func (_m *MockSchemasInterface) List(ctx context.Context, request catalog.ListSchemasRequest) *listing.PaginatingIterator[catalog.ListSchemasRequest, *catalog.ListSchemasResponse, catalog.SchemaInfo] { +func (_m *MockSchemasInterface) List(ctx context.Context, request catalog.ListSchemasRequest) listing.Iterator[catalog.SchemaInfo] { ret := _m.Called(ctx, request) if len(ret) == 0 { panic("no return value specified for List") } - var r0 *listing.PaginatingIterator[catalog.ListSchemasRequest, *catalog.ListSchemasResponse, catalog.SchemaInfo] - if rf, ok := ret.Get(0).(func(context.Context, catalog.ListSchemasRequest) *listing.PaginatingIterator[catalog.ListSchemasRequest, *catalog.ListSchemasResponse, catalog.SchemaInfo]); ok { + var r0 listing.Iterator[catalog.SchemaInfo] + if rf, ok := ret.Get(0).(func(context.Context, catalog.ListSchemasRequest) listing.Iterator[catalog.SchemaInfo]); ok { r0 = rf(ctx, request) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.PaginatingIterator[catalog.ListSchemasRequest, *catalog.ListSchemasResponse, catalog.SchemaInfo]) + r0 = ret.Get(0).(listing.Iterator[catalog.SchemaInfo]) } } @@ -441,12 +441,12 @@ func (_c *MockSchemasInterface_List_Call) Run(run func(ctx context.Context, requ return _c } -func (_c *MockSchemasInterface_List_Call) Return(_a0 *listing.PaginatingIterator[catalog.ListSchemasRequest, *catalog.ListSchemasResponse, catalog.SchemaInfo]) *MockSchemasInterface_List_Call { +func (_c *MockSchemasInterface_List_Call) Return(_a0 listing.Iterator[catalog.SchemaInfo]) *MockSchemasInterface_List_Call { _c.Call.Return(_a0) return _c } -func (_c *MockSchemasInterface_List_Call) RunAndReturn(run func(context.Context, catalog.ListSchemasRequest) *listing.PaginatingIterator[catalog.ListSchemasRequest, *catalog.ListSchemasResponse, catalog.SchemaInfo]) *MockSchemasInterface_List_Call { +func (_c *MockSchemasInterface_List_Call) RunAndReturn(run func(context.Context, catalog.ListSchemasRequest) listing.Iterator[catalog.SchemaInfo]) *MockSchemasInterface_List_Call { _c.Call.Return(run) return _c } diff --git a/experimental/mocks/service/catalog/mock_storage_credentials_interface.go b/experimental/mocks/service/catalog/mock_storage_credentials_interface.go index fcedb0444..0cd5f7734 100644 --- a/experimental/mocks/service/catalog/mock_storage_credentials_interface.go +++ b/experimental/mocks/service/catalog/mock_storage_credentials_interface.go @@ -344,19 +344,19 @@ func (_c *MockStorageCredentialsInterface_Impl_Call) RunAndReturn(run func() cat } // List provides a mock function with given fields: ctx, request -func (_m *MockStorageCredentialsInterface) List(ctx context.Context, request catalog.ListStorageCredentialsRequest) *listing.PaginatingIterator[catalog.ListStorageCredentialsRequest, *catalog.ListStorageCredentialsResponse, catalog.StorageCredentialInfo] { +func (_m *MockStorageCredentialsInterface) List(ctx context.Context, request catalog.ListStorageCredentialsRequest) listing.Iterator[catalog.StorageCredentialInfo] { ret := _m.Called(ctx, request) if len(ret) == 0 { panic("no return value specified for List") } - var r0 *listing.PaginatingIterator[catalog.ListStorageCredentialsRequest, *catalog.ListStorageCredentialsResponse, catalog.StorageCredentialInfo] - if rf, ok := ret.Get(0).(func(context.Context, catalog.ListStorageCredentialsRequest) *listing.PaginatingIterator[catalog.ListStorageCredentialsRequest, *catalog.ListStorageCredentialsResponse, catalog.StorageCredentialInfo]); ok { + var r0 listing.Iterator[catalog.StorageCredentialInfo] + if rf, ok := ret.Get(0).(func(context.Context, catalog.ListStorageCredentialsRequest) listing.Iterator[catalog.StorageCredentialInfo]); ok { r0 = rf(ctx, request) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.PaginatingIterator[catalog.ListStorageCredentialsRequest, *catalog.ListStorageCredentialsResponse, catalog.StorageCredentialInfo]) + r0 = ret.Get(0).(listing.Iterator[catalog.StorageCredentialInfo]) } } @@ -382,12 +382,12 @@ func (_c *MockStorageCredentialsInterface_List_Call) Run(run func(ctx context.Co return _c } -func (_c *MockStorageCredentialsInterface_List_Call) Return(_a0 *listing.PaginatingIterator[catalog.ListStorageCredentialsRequest, *catalog.ListStorageCredentialsResponse, catalog.StorageCredentialInfo]) *MockStorageCredentialsInterface_List_Call { +func (_c *MockStorageCredentialsInterface_List_Call) Return(_a0 listing.Iterator[catalog.StorageCredentialInfo]) *MockStorageCredentialsInterface_List_Call { _c.Call.Return(_a0) return _c } -func (_c *MockStorageCredentialsInterface_List_Call) RunAndReturn(run func(context.Context, catalog.ListStorageCredentialsRequest) *listing.PaginatingIterator[catalog.ListStorageCredentialsRequest, *catalog.ListStorageCredentialsResponse, catalog.StorageCredentialInfo]) *MockStorageCredentialsInterface_List_Call { +func (_c *MockStorageCredentialsInterface_List_Call) RunAndReturn(run func(context.Context, catalog.ListStorageCredentialsRequest) listing.Iterator[catalog.StorageCredentialInfo]) *MockStorageCredentialsInterface_List_Call { _c.Call.Return(run) return _c } diff --git a/experimental/mocks/service/catalog/mock_system_schemas_interface.go b/experimental/mocks/service/catalog/mock_system_schemas_interface.go index 3818bc654..12a0080c6 100644 --- a/experimental/mocks/service/catalog/mock_system_schemas_interface.go +++ b/experimental/mocks/service/catalog/mock_system_schemas_interface.go @@ -215,19 +215,19 @@ func (_c *MockSystemSchemasInterface_Impl_Call) RunAndReturn(run func() catalog. } // List provides a mock function with given fields: ctx, request -func (_m *MockSystemSchemasInterface) List(ctx context.Context, request catalog.ListSystemSchemasRequest) *listing.PaginatingIterator[catalog.ListSystemSchemasRequest, *catalog.ListSystemSchemasResponse, catalog.SystemSchemaInfo] { +func (_m *MockSystemSchemasInterface) List(ctx context.Context, request catalog.ListSystemSchemasRequest) listing.Iterator[catalog.SystemSchemaInfo] { ret := _m.Called(ctx, request) if len(ret) == 0 { panic("no return value specified for List") } - var r0 *listing.PaginatingIterator[catalog.ListSystemSchemasRequest, *catalog.ListSystemSchemasResponse, catalog.SystemSchemaInfo] - if rf, ok := ret.Get(0).(func(context.Context, catalog.ListSystemSchemasRequest) *listing.PaginatingIterator[catalog.ListSystemSchemasRequest, *catalog.ListSystemSchemasResponse, catalog.SystemSchemaInfo]); ok { + var r0 listing.Iterator[catalog.SystemSchemaInfo] + if rf, ok := ret.Get(0).(func(context.Context, catalog.ListSystemSchemasRequest) listing.Iterator[catalog.SystemSchemaInfo]); ok { r0 = rf(ctx, request) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.PaginatingIterator[catalog.ListSystemSchemasRequest, *catalog.ListSystemSchemasResponse, catalog.SystemSchemaInfo]) + r0 = ret.Get(0).(listing.Iterator[catalog.SystemSchemaInfo]) } } @@ -253,12 +253,12 @@ func (_c *MockSystemSchemasInterface_List_Call) Run(run func(ctx context.Context return _c } -func (_c *MockSystemSchemasInterface_List_Call) Return(_a0 *listing.PaginatingIterator[catalog.ListSystemSchemasRequest, *catalog.ListSystemSchemasResponse, catalog.SystemSchemaInfo]) *MockSystemSchemasInterface_List_Call { +func (_c *MockSystemSchemasInterface_List_Call) Return(_a0 listing.Iterator[catalog.SystemSchemaInfo]) *MockSystemSchemasInterface_List_Call { _c.Call.Return(_a0) return _c } -func (_c *MockSystemSchemasInterface_List_Call) RunAndReturn(run func(context.Context, catalog.ListSystemSchemasRequest) *listing.PaginatingIterator[catalog.ListSystemSchemasRequest, *catalog.ListSystemSchemasResponse, catalog.SystemSchemaInfo]) *MockSystemSchemasInterface_List_Call { +func (_c *MockSystemSchemasInterface_List_Call) RunAndReturn(run func(context.Context, catalog.ListSystemSchemasRequest) listing.Iterator[catalog.SystemSchemaInfo]) *MockSystemSchemasInterface_List_Call { _c.Call.Return(run) return _c } diff --git a/experimental/mocks/service/catalog/mock_tables_interface.go b/experimental/mocks/service/catalog/mock_tables_interface.go index 6ff966988..396c0d147 100644 --- a/experimental/mocks/service/catalog/mock_tables_interface.go +++ b/experimental/mocks/service/catalog/mock_tables_interface.go @@ -344,19 +344,19 @@ func (_c *MockTablesInterface_Impl_Call) RunAndReturn(run func() catalog.TablesS } // List provides a mock function with given fields: ctx, request -func (_m *MockTablesInterface) List(ctx context.Context, request catalog.ListTablesRequest) *listing.PaginatingIterator[catalog.ListTablesRequest, *catalog.ListTablesResponse, catalog.TableInfo] { +func (_m *MockTablesInterface) List(ctx context.Context, request catalog.ListTablesRequest) listing.Iterator[catalog.TableInfo] { ret := _m.Called(ctx, request) if len(ret) == 0 { panic("no return value specified for List") } - var r0 *listing.PaginatingIterator[catalog.ListTablesRequest, *catalog.ListTablesResponse, catalog.TableInfo] - if rf, ok := ret.Get(0).(func(context.Context, catalog.ListTablesRequest) *listing.PaginatingIterator[catalog.ListTablesRequest, *catalog.ListTablesResponse, catalog.TableInfo]); ok { + var r0 listing.Iterator[catalog.TableInfo] + if rf, ok := ret.Get(0).(func(context.Context, catalog.ListTablesRequest) listing.Iterator[catalog.TableInfo]); ok { r0 = rf(ctx, request) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.PaginatingIterator[catalog.ListTablesRequest, *catalog.ListTablesResponse, catalog.TableInfo]) + r0 = ret.Get(0).(listing.Iterator[catalog.TableInfo]) } } @@ -382,12 +382,12 @@ func (_c *MockTablesInterface_List_Call) Run(run func(ctx context.Context, reque return _c } -func (_c *MockTablesInterface_List_Call) Return(_a0 *listing.PaginatingIterator[catalog.ListTablesRequest, *catalog.ListTablesResponse, catalog.TableInfo]) *MockTablesInterface_List_Call { +func (_c *MockTablesInterface_List_Call) Return(_a0 listing.Iterator[catalog.TableInfo]) *MockTablesInterface_List_Call { _c.Call.Return(_a0) return _c } -func (_c *MockTablesInterface_List_Call) RunAndReturn(run func(context.Context, catalog.ListTablesRequest) *listing.PaginatingIterator[catalog.ListTablesRequest, *catalog.ListTablesResponse, catalog.TableInfo]) *MockTablesInterface_List_Call { +func (_c *MockTablesInterface_List_Call) RunAndReturn(run func(context.Context, catalog.ListTablesRequest) listing.Iterator[catalog.TableInfo]) *MockTablesInterface_List_Call { _c.Call.Return(run) return _c } @@ -452,19 +452,19 @@ func (_c *MockTablesInterface_ListAll_Call) RunAndReturn(run func(context.Contex } // ListSummaries provides a mock function with given fields: ctx, request -func (_m *MockTablesInterface) ListSummaries(ctx context.Context, request catalog.ListSummariesRequest) *listing.PaginatingIterator[catalog.ListSummariesRequest, *catalog.ListTableSummariesResponse, catalog.TableSummary] { +func (_m *MockTablesInterface) ListSummaries(ctx context.Context, request catalog.ListSummariesRequest) listing.Iterator[catalog.TableSummary] { ret := _m.Called(ctx, request) if len(ret) == 0 { panic("no return value specified for ListSummaries") } - var r0 *listing.PaginatingIterator[catalog.ListSummariesRequest, *catalog.ListTableSummariesResponse, catalog.TableSummary] - if rf, ok := ret.Get(0).(func(context.Context, catalog.ListSummariesRequest) *listing.PaginatingIterator[catalog.ListSummariesRequest, *catalog.ListTableSummariesResponse, catalog.TableSummary]); ok { + var r0 listing.Iterator[catalog.TableSummary] + if rf, ok := ret.Get(0).(func(context.Context, catalog.ListSummariesRequest) listing.Iterator[catalog.TableSummary]); ok { r0 = rf(ctx, request) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.PaginatingIterator[catalog.ListSummariesRequest, *catalog.ListTableSummariesResponse, catalog.TableSummary]) + r0 = ret.Get(0).(listing.Iterator[catalog.TableSummary]) } } @@ -490,12 +490,12 @@ func (_c *MockTablesInterface_ListSummaries_Call) Run(run func(ctx context.Conte return _c } -func (_c *MockTablesInterface_ListSummaries_Call) Return(_a0 *listing.PaginatingIterator[catalog.ListSummariesRequest, *catalog.ListTableSummariesResponse, catalog.TableSummary]) *MockTablesInterface_ListSummaries_Call { +func (_c *MockTablesInterface_ListSummaries_Call) Return(_a0 listing.Iterator[catalog.TableSummary]) *MockTablesInterface_ListSummaries_Call { _c.Call.Return(_a0) return _c } -func (_c *MockTablesInterface_ListSummaries_Call) RunAndReturn(run func(context.Context, catalog.ListSummariesRequest) *listing.PaginatingIterator[catalog.ListSummariesRequest, *catalog.ListTableSummariesResponse, catalog.TableSummary]) *MockTablesInterface_ListSummaries_Call { +func (_c *MockTablesInterface_ListSummaries_Call) RunAndReturn(run func(context.Context, catalog.ListSummariesRequest) listing.Iterator[catalog.TableSummary]) *MockTablesInterface_ListSummaries_Call { _c.Call.Return(run) return _c } diff --git a/experimental/mocks/service/catalog/mock_volumes_interface.go b/experimental/mocks/service/catalog/mock_volumes_interface.go index 9ff501a0b..08c93d521 100644 --- a/experimental/mocks/service/catalog/mock_volumes_interface.go +++ b/experimental/mocks/service/catalog/mock_volumes_interface.go @@ -285,19 +285,19 @@ func (_c *MockVolumesInterface_Impl_Call) RunAndReturn(run func() catalog.Volume } // List provides a mock function with given fields: ctx, request -func (_m *MockVolumesInterface) List(ctx context.Context, request catalog.ListVolumesRequest) *listing.PaginatingIterator[catalog.ListVolumesRequest, *catalog.ListVolumesResponseContent, catalog.VolumeInfo] { +func (_m *MockVolumesInterface) List(ctx context.Context, request catalog.ListVolumesRequest) listing.Iterator[catalog.VolumeInfo] { ret := _m.Called(ctx, request) if len(ret) == 0 { panic("no return value specified for List") } - var r0 *listing.PaginatingIterator[catalog.ListVolumesRequest, *catalog.ListVolumesResponseContent, catalog.VolumeInfo] - if rf, ok := ret.Get(0).(func(context.Context, catalog.ListVolumesRequest) *listing.PaginatingIterator[catalog.ListVolumesRequest, *catalog.ListVolumesResponseContent, catalog.VolumeInfo]); ok { + var r0 listing.Iterator[catalog.VolumeInfo] + if rf, ok := ret.Get(0).(func(context.Context, catalog.ListVolumesRequest) listing.Iterator[catalog.VolumeInfo]); ok { r0 = rf(ctx, request) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.PaginatingIterator[catalog.ListVolumesRequest, *catalog.ListVolumesResponseContent, catalog.VolumeInfo]) + r0 = ret.Get(0).(listing.Iterator[catalog.VolumeInfo]) } } @@ -323,12 +323,12 @@ func (_c *MockVolumesInterface_List_Call) Run(run func(ctx context.Context, requ return _c } -func (_c *MockVolumesInterface_List_Call) Return(_a0 *listing.PaginatingIterator[catalog.ListVolumesRequest, *catalog.ListVolumesResponseContent, catalog.VolumeInfo]) *MockVolumesInterface_List_Call { +func (_c *MockVolumesInterface_List_Call) Return(_a0 listing.Iterator[catalog.VolumeInfo]) *MockVolumesInterface_List_Call { _c.Call.Return(_a0) return _c } -func (_c *MockVolumesInterface_List_Call) RunAndReturn(run func(context.Context, catalog.ListVolumesRequest) *listing.PaginatingIterator[catalog.ListVolumesRequest, *catalog.ListVolumesResponseContent, catalog.VolumeInfo]) *MockVolumesInterface_List_Call { +func (_c *MockVolumesInterface_List_Call) RunAndReturn(run func(context.Context, catalog.ListVolumesRequest) listing.Iterator[catalog.VolumeInfo]) *MockVolumesInterface_List_Call { _c.Call.Return(run) return _c } diff --git a/experimental/mocks/service/compute/mock_cluster_policies_interface.go b/experimental/mocks/service/compute/mock_cluster_policies_interface.go index 71ba11b2d..b9ae24b6b 100644 --- a/experimental/mocks/service/compute/mock_cluster_policies_interface.go +++ b/experimental/mocks/service/compute/mock_cluster_policies_interface.go @@ -686,19 +686,19 @@ func (_c *MockClusterPoliciesInterface_Impl_Call) RunAndReturn(run func() comput } // List provides a mock function with given fields: ctx, request -func (_m *MockClusterPoliciesInterface) List(ctx context.Context, request compute.ListClusterPoliciesRequest) *listing.PaginatingIterator[compute.ListClusterPoliciesRequest, *compute.ListPoliciesResponse, compute.Policy] { +func (_m *MockClusterPoliciesInterface) List(ctx context.Context, request compute.ListClusterPoliciesRequest) listing.Iterator[compute.Policy] { ret := _m.Called(ctx, request) if len(ret) == 0 { panic("no return value specified for List") } - var r0 *listing.PaginatingIterator[compute.ListClusterPoliciesRequest, *compute.ListPoliciesResponse, compute.Policy] - if rf, ok := ret.Get(0).(func(context.Context, compute.ListClusterPoliciesRequest) *listing.PaginatingIterator[compute.ListClusterPoliciesRequest, *compute.ListPoliciesResponse, compute.Policy]); ok { + var r0 listing.Iterator[compute.Policy] + if rf, ok := ret.Get(0).(func(context.Context, compute.ListClusterPoliciesRequest) listing.Iterator[compute.Policy]); ok { r0 = rf(ctx, request) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.PaginatingIterator[compute.ListClusterPoliciesRequest, *compute.ListPoliciesResponse, compute.Policy]) + r0 = ret.Get(0).(listing.Iterator[compute.Policy]) } } @@ -724,12 +724,12 @@ func (_c *MockClusterPoliciesInterface_List_Call) Run(run func(ctx context.Conte return _c } -func (_c *MockClusterPoliciesInterface_List_Call) Return(_a0 *listing.PaginatingIterator[compute.ListClusterPoliciesRequest, *compute.ListPoliciesResponse, compute.Policy]) *MockClusterPoliciesInterface_List_Call { +func (_c *MockClusterPoliciesInterface_List_Call) Return(_a0 listing.Iterator[compute.Policy]) *MockClusterPoliciesInterface_List_Call { _c.Call.Return(_a0) return _c } -func (_c *MockClusterPoliciesInterface_List_Call) RunAndReturn(run func(context.Context, compute.ListClusterPoliciesRequest) *listing.PaginatingIterator[compute.ListClusterPoliciesRequest, *compute.ListPoliciesResponse, compute.Policy]) *MockClusterPoliciesInterface_List_Call { +func (_c *MockClusterPoliciesInterface_List_Call) RunAndReturn(run func(context.Context, compute.ListClusterPoliciesRequest) listing.Iterator[compute.Policy]) *MockClusterPoliciesInterface_List_Call { _c.Call.Return(run) return _c } diff --git a/experimental/mocks/service/compute/mock_clusters_interface.go b/experimental/mocks/service/compute/mock_clusters_interface.go index b5b566c49..c8479c606 100644 --- a/experimental/mocks/service/compute/mock_clusters_interface.go +++ b/experimental/mocks/service/compute/mock_clusters_interface.go @@ -269,23 +269,23 @@ func (_c *MockClustersInterface_CreateAndWait_Call) RunAndReturn(run func(contex } // Delete provides a mock function with given fields: ctx, deleteCluster -func (_m *MockClustersInterface) Delete(ctx context.Context, deleteCluster compute.DeleteCluster) (*compute.WaitGetClusterTerminated[interface{}], error) { +func (_m *MockClustersInterface) Delete(ctx context.Context, deleteCluster compute.DeleteCluster) (*compute.WaitGetClusterTerminated[struct{}], error) { ret := _m.Called(ctx, deleteCluster) if len(ret) == 0 { panic("no return value specified for Delete") } - var r0 *compute.WaitGetClusterTerminated[interface{}] + var r0 *compute.WaitGetClusterTerminated[struct{}] var r1 error - if rf, ok := ret.Get(0).(func(context.Context, compute.DeleteCluster) (*compute.WaitGetClusterTerminated[interface{}], error)); ok { + if rf, ok := ret.Get(0).(func(context.Context, compute.DeleteCluster) (*compute.WaitGetClusterTerminated[struct{}], error)); ok { return rf(ctx, deleteCluster) } - if rf, ok := ret.Get(0).(func(context.Context, compute.DeleteCluster) *compute.WaitGetClusterTerminated[interface{}]); ok { + if rf, ok := ret.Get(0).(func(context.Context, compute.DeleteCluster) *compute.WaitGetClusterTerminated[struct{}]); ok { r0 = rf(ctx, deleteCluster) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*compute.WaitGetClusterTerminated[interface{}]) + r0 = ret.Get(0).(*compute.WaitGetClusterTerminated[struct{}]) } } @@ -317,12 +317,12 @@ func (_c *MockClustersInterface_Delete_Call) Run(run func(ctx context.Context, d return _c } -func (_c *MockClustersInterface_Delete_Call) Return(_a0 *compute.WaitGetClusterTerminated[interface{}], _a1 error) *MockClustersInterface_Delete_Call { +func (_c *MockClustersInterface_Delete_Call) Return(_a0 *compute.WaitGetClusterTerminated[struct{}], _a1 error) *MockClustersInterface_Delete_Call { _c.Call.Return(_a0, _a1) return _c } -func (_c *MockClustersInterface_Delete_Call) RunAndReturn(run func(context.Context, compute.DeleteCluster) (*compute.WaitGetClusterTerminated[interface{}], error)) *MockClustersInterface_Delete_Call { +func (_c *MockClustersInterface_Delete_Call) RunAndReturn(run func(context.Context, compute.DeleteCluster) (*compute.WaitGetClusterTerminated[struct{}], error)) *MockClustersInterface_Delete_Call { _c.Call.Return(run) return _c } @@ -523,23 +523,23 @@ func (_c *MockClustersInterface_DeleteByClusterIdAndWait_Call) RunAndReturn(run } // Edit provides a mock function with given fields: ctx, editCluster -func (_m *MockClustersInterface) Edit(ctx context.Context, editCluster compute.EditCluster) (*compute.WaitGetClusterRunning[interface{}], error) { +func (_m *MockClustersInterface) Edit(ctx context.Context, editCluster compute.EditCluster) (*compute.WaitGetClusterRunning[struct{}], error) { ret := _m.Called(ctx, editCluster) if len(ret) == 0 { panic("no return value specified for Edit") } - var r0 *compute.WaitGetClusterRunning[interface{}] + var r0 *compute.WaitGetClusterRunning[struct{}] var r1 error - if rf, ok := ret.Get(0).(func(context.Context, compute.EditCluster) (*compute.WaitGetClusterRunning[interface{}], error)); ok { + if rf, ok := ret.Get(0).(func(context.Context, compute.EditCluster) (*compute.WaitGetClusterRunning[struct{}], error)); ok { return rf(ctx, editCluster) } - if rf, ok := ret.Get(0).(func(context.Context, compute.EditCluster) *compute.WaitGetClusterRunning[interface{}]); ok { + if rf, ok := ret.Get(0).(func(context.Context, compute.EditCluster) *compute.WaitGetClusterRunning[struct{}]); ok { r0 = rf(ctx, editCluster) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*compute.WaitGetClusterRunning[interface{}]) + r0 = ret.Get(0).(*compute.WaitGetClusterRunning[struct{}]) } } @@ -571,12 +571,12 @@ func (_c *MockClustersInterface_Edit_Call) Run(run func(ctx context.Context, edi return _c } -func (_c *MockClustersInterface_Edit_Call) Return(_a0 *compute.WaitGetClusterRunning[interface{}], _a1 error) *MockClustersInterface_Edit_Call { +func (_c *MockClustersInterface_Edit_Call) Return(_a0 *compute.WaitGetClusterRunning[struct{}], _a1 error) *MockClustersInterface_Edit_Call { _c.Call.Return(_a0, _a1) return _c } -func (_c *MockClustersInterface_Edit_Call) RunAndReturn(run func(context.Context, compute.EditCluster) (*compute.WaitGetClusterRunning[interface{}], error)) *MockClustersInterface_Edit_Call { +func (_c *MockClustersInterface_Edit_Call) RunAndReturn(run func(context.Context, compute.EditCluster) (*compute.WaitGetClusterRunning[struct{}], error)) *MockClustersInterface_Edit_Call { _c.Call.Return(run) return _c } @@ -703,19 +703,19 @@ func (_c *MockClustersInterface_EnsureClusterIsRunning_Call) RunAndReturn(run fu } // Events provides a mock function with given fields: ctx, request -func (_m *MockClustersInterface) Events(ctx context.Context, request compute.GetEvents) *listing.PaginatingIterator[compute.GetEvents, *compute.GetEventsResponse, compute.ClusterEvent] { +func (_m *MockClustersInterface) Events(ctx context.Context, request compute.GetEvents) listing.Iterator[compute.ClusterEvent] { ret := _m.Called(ctx, request) if len(ret) == 0 { panic("no return value specified for Events") } - var r0 *listing.PaginatingIterator[compute.GetEvents, *compute.GetEventsResponse, compute.ClusterEvent] - if rf, ok := ret.Get(0).(func(context.Context, compute.GetEvents) *listing.PaginatingIterator[compute.GetEvents, *compute.GetEventsResponse, compute.ClusterEvent]); ok { + var r0 listing.Iterator[compute.ClusterEvent] + if rf, ok := ret.Get(0).(func(context.Context, compute.GetEvents) listing.Iterator[compute.ClusterEvent]); ok { r0 = rf(ctx, request) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.PaginatingIterator[compute.GetEvents, *compute.GetEventsResponse, compute.ClusterEvent]) + r0 = ret.Get(0).(listing.Iterator[compute.ClusterEvent]) } } @@ -741,12 +741,12 @@ func (_c *MockClustersInterface_Events_Call) Run(run func(ctx context.Context, r return _c } -func (_c *MockClustersInterface_Events_Call) Return(_a0 *listing.PaginatingIterator[compute.GetEvents, *compute.GetEventsResponse, compute.ClusterEvent]) *MockClustersInterface_Events_Call { +func (_c *MockClustersInterface_Events_Call) Return(_a0 listing.Iterator[compute.ClusterEvent]) *MockClustersInterface_Events_Call { _c.Call.Return(_a0) return _c } -func (_c *MockClustersInterface_Events_Call) RunAndReturn(run func(context.Context, compute.GetEvents) *listing.PaginatingIterator[compute.GetEvents, *compute.GetEventsResponse, compute.ClusterEvent]) *MockClustersInterface_Events_Call { +func (_c *MockClustersInterface_Events_Call) RunAndReturn(run func(context.Context, compute.GetEvents) listing.Iterator[compute.ClusterEvent]) *MockClustersInterface_Events_Call { _c.Call.Return(run) return _c } @@ -1345,19 +1345,19 @@ func (_c *MockClustersInterface_Impl_Call) RunAndReturn(run func() compute.Clust } // List provides a mock function with given fields: ctx, request -func (_m *MockClustersInterface) List(ctx context.Context, request compute.ListClustersRequest) *listing.PaginatingIterator[compute.ListClustersRequest, *compute.ListClustersResponse, compute.ClusterDetails] { +func (_m *MockClustersInterface) List(ctx context.Context, request compute.ListClustersRequest) listing.Iterator[compute.ClusterDetails] { ret := _m.Called(ctx, request) if len(ret) == 0 { panic("no return value specified for List") } - var r0 *listing.PaginatingIterator[compute.ListClustersRequest, *compute.ListClustersResponse, compute.ClusterDetails] - if rf, ok := ret.Get(0).(func(context.Context, compute.ListClustersRequest) *listing.PaginatingIterator[compute.ListClustersRequest, *compute.ListClustersResponse, compute.ClusterDetails]); ok { + var r0 listing.Iterator[compute.ClusterDetails] + if rf, ok := ret.Get(0).(func(context.Context, compute.ListClustersRequest) listing.Iterator[compute.ClusterDetails]); ok { r0 = rf(ctx, request) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.PaginatingIterator[compute.ListClustersRequest, *compute.ListClustersResponse, compute.ClusterDetails]) + r0 = ret.Get(0).(listing.Iterator[compute.ClusterDetails]) } } @@ -1383,12 +1383,12 @@ func (_c *MockClustersInterface_List_Call) Run(run func(ctx context.Context, req return _c } -func (_c *MockClustersInterface_List_Call) Return(_a0 *listing.PaginatingIterator[compute.ListClustersRequest, *compute.ListClustersResponse, compute.ClusterDetails]) *MockClustersInterface_List_Call { +func (_c *MockClustersInterface_List_Call) Return(_a0 listing.Iterator[compute.ClusterDetails]) *MockClustersInterface_List_Call { _c.Call.Return(_a0) return _c } -func (_c *MockClustersInterface_List_Call) RunAndReturn(run func(context.Context, compute.ListClustersRequest) *listing.PaginatingIterator[compute.ListClustersRequest, *compute.ListClustersResponse, compute.ClusterDetails]) *MockClustersInterface_List_Call { +func (_c *MockClustersInterface_List_Call) RunAndReturn(run func(context.Context, compute.ListClustersRequest) listing.Iterator[compute.ClusterDetails]) *MockClustersInterface_List_Call { _c.Call.Return(run) return _c } @@ -1816,23 +1816,23 @@ func (_c *MockClustersInterface_PinByClusterId_Call) RunAndReturn(run func(conte } // Resize provides a mock function with given fields: ctx, resizeCluster -func (_m *MockClustersInterface) Resize(ctx context.Context, resizeCluster compute.ResizeCluster) (*compute.WaitGetClusterRunning[interface{}], error) { +func (_m *MockClustersInterface) Resize(ctx context.Context, resizeCluster compute.ResizeCluster) (*compute.WaitGetClusterRunning[struct{}], error) { ret := _m.Called(ctx, resizeCluster) if len(ret) == 0 { panic("no return value specified for Resize") } - var r0 *compute.WaitGetClusterRunning[interface{}] + var r0 *compute.WaitGetClusterRunning[struct{}] var r1 error - if rf, ok := ret.Get(0).(func(context.Context, compute.ResizeCluster) (*compute.WaitGetClusterRunning[interface{}], error)); ok { + if rf, ok := ret.Get(0).(func(context.Context, compute.ResizeCluster) (*compute.WaitGetClusterRunning[struct{}], error)); ok { return rf(ctx, resizeCluster) } - if rf, ok := ret.Get(0).(func(context.Context, compute.ResizeCluster) *compute.WaitGetClusterRunning[interface{}]); ok { + if rf, ok := ret.Get(0).(func(context.Context, compute.ResizeCluster) *compute.WaitGetClusterRunning[struct{}]); ok { r0 = rf(ctx, resizeCluster) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*compute.WaitGetClusterRunning[interface{}]) + r0 = ret.Get(0).(*compute.WaitGetClusterRunning[struct{}]) } } @@ -1864,12 +1864,12 @@ func (_c *MockClustersInterface_Resize_Call) Run(run func(ctx context.Context, r return _c } -func (_c *MockClustersInterface_Resize_Call) Return(_a0 *compute.WaitGetClusterRunning[interface{}], _a1 error) *MockClustersInterface_Resize_Call { +func (_c *MockClustersInterface_Resize_Call) Return(_a0 *compute.WaitGetClusterRunning[struct{}], _a1 error) *MockClustersInterface_Resize_Call { _c.Call.Return(_a0, _a1) return _c } -func (_c *MockClustersInterface_Resize_Call) RunAndReturn(run func(context.Context, compute.ResizeCluster) (*compute.WaitGetClusterRunning[interface{}], error)) *MockClustersInterface_Resize_Call { +func (_c *MockClustersInterface_Resize_Call) RunAndReturn(run func(context.Context, compute.ResizeCluster) (*compute.WaitGetClusterRunning[struct{}], error)) *MockClustersInterface_Resize_Call { _c.Call.Return(run) return _c } @@ -1949,23 +1949,23 @@ func (_c *MockClustersInterface_ResizeAndWait_Call) RunAndReturn(run func(contex } // Restart provides a mock function with given fields: ctx, restartCluster -func (_m *MockClustersInterface) Restart(ctx context.Context, restartCluster compute.RestartCluster) (*compute.WaitGetClusterRunning[interface{}], error) { +func (_m *MockClustersInterface) Restart(ctx context.Context, restartCluster compute.RestartCluster) (*compute.WaitGetClusterRunning[struct{}], error) { ret := _m.Called(ctx, restartCluster) if len(ret) == 0 { panic("no return value specified for Restart") } - var r0 *compute.WaitGetClusterRunning[interface{}] + var r0 *compute.WaitGetClusterRunning[struct{}] var r1 error - if rf, ok := ret.Get(0).(func(context.Context, compute.RestartCluster) (*compute.WaitGetClusterRunning[interface{}], error)); ok { + if rf, ok := ret.Get(0).(func(context.Context, compute.RestartCluster) (*compute.WaitGetClusterRunning[struct{}], error)); ok { return rf(ctx, restartCluster) } - if rf, ok := ret.Get(0).(func(context.Context, compute.RestartCluster) *compute.WaitGetClusterRunning[interface{}]); ok { + if rf, ok := ret.Get(0).(func(context.Context, compute.RestartCluster) *compute.WaitGetClusterRunning[struct{}]); ok { r0 = rf(ctx, restartCluster) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*compute.WaitGetClusterRunning[interface{}]) + r0 = ret.Get(0).(*compute.WaitGetClusterRunning[struct{}]) } } @@ -1997,12 +1997,12 @@ func (_c *MockClustersInterface_Restart_Call) Run(run func(ctx context.Context, return _c } -func (_c *MockClustersInterface_Restart_Call) Return(_a0 *compute.WaitGetClusterRunning[interface{}], _a1 error) *MockClustersInterface_Restart_Call { +func (_c *MockClustersInterface_Restart_Call) Return(_a0 *compute.WaitGetClusterRunning[struct{}], _a1 error) *MockClustersInterface_Restart_Call { _c.Call.Return(_a0, _a1) return _c } -func (_c *MockClustersInterface_Restart_Call) RunAndReturn(run func(context.Context, compute.RestartCluster) (*compute.WaitGetClusterRunning[interface{}], error)) *MockClustersInterface_Restart_Call { +func (_c *MockClustersInterface_Restart_Call) RunAndReturn(run func(context.Context, compute.RestartCluster) (*compute.WaitGetClusterRunning[struct{}], error)) *MockClustersInterface_Restart_Call { _c.Call.Return(run) return _c } @@ -2313,23 +2313,23 @@ func (_c *MockClustersInterface_SparkVersions_Call) RunAndReturn(run func(contex } // Start provides a mock function with given fields: ctx, startCluster -func (_m *MockClustersInterface) Start(ctx context.Context, startCluster compute.StartCluster) (*compute.WaitGetClusterRunning[interface{}], error) { +func (_m *MockClustersInterface) Start(ctx context.Context, startCluster compute.StartCluster) (*compute.WaitGetClusterRunning[struct{}], error) { ret := _m.Called(ctx, startCluster) if len(ret) == 0 { panic("no return value specified for Start") } - var r0 *compute.WaitGetClusterRunning[interface{}] + var r0 *compute.WaitGetClusterRunning[struct{}] var r1 error - if rf, ok := ret.Get(0).(func(context.Context, compute.StartCluster) (*compute.WaitGetClusterRunning[interface{}], error)); ok { + if rf, ok := ret.Get(0).(func(context.Context, compute.StartCluster) (*compute.WaitGetClusterRunning[struct{}], error)); ok { return rf(ctx, startCluster) } - if rf, ok := ret.Get(0).(func(context.Context, compute.StartCluster) *compute.WaitGetClusterRunning[interface{}]); ok { + if rf, ok := ret.Get(0).(func(context.Context, compute.StartCluster) *compute.WaitGetClusterRunning[struct{}]); ok { r0 = rf(ctx, startCluster) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*compute.WaitGetClusterRunning[interface{}]) + r0 = ret.Get(0).(*compute.WaitGetClusterRunning[struct{}]) } } @@ -2361,12 +2361,12 @@ func (_c *MockClustersInterface_Start_Call) Run(run func(ctx context.Context, st return _c } -func (_c *MockClustersInterface_Start_Call) Return(_a0 *compute.WaitGetClusterRunning[interface{}], _a1 error) *MockClustersInterface_Start_Call { +func (_c *MockClustersInterface_Start_Call) Return(_a0 *compute.WaitGetClusterRunning[struct{}], _a1 error) *MockClustersInterface_Start_Call { _c.Call.Return(_a0, _a1) return _c } -func (_c *MockClustersInterface_Start_Call) RunAndReturn(run func(context.Context, compute.StartCluster) (*compute.WaitGetClusterRunning[interface{}], error)) *MockClustersInterface_Start_Call { +func (_c *MockClustersInterface_Start_Call) RunAndReturn(run func(context.Context, compute.StartCluster) (*compute.WaitGetClusterRunning[struct{}], error)) *MockClustersInterface_Start_Call { _c.Call.Return(run) return _c } diff --git a/experimental/mocks/service/compute/mock_command_execution_interface.go b/experimental/mocks/service/compute/mock_command_execution_interface.go index f4507f37c..2cd972321 100644 --- a/experimental/mocks/service/compute/mock_command_execution_interface.go +++ b/experimental/mocks/service/compute/mock_command_execution_interface.go @@ -28,23 +28,23 @@ func (_m *MockCommandExecutionInterface) EXPECT() *MockCommandExecutionInterface } // Cancel provides a mock function with given fields: ctx, cancelCommand -func (_m *MockCommandExecutionInterface) Cancel(ctx context.Context, cancelCommand compute.CancelCommand) (*compute.WaitCommandStatusCommandExecutionCancelled[interface{}], error) { +func (_m *MockCommandExecutionInterface) Cancel(ctx context.Context, cancelCommand compute.CancelCommand) (*compute.WaitCommandStatusCommandExecutionCancelled[struct{}], error) { ret := _m.Called(ctx, cancelCommand) if len(ret) == 0 { panic("no return value specified for Cancel") } - var r0 *compute.WaitCommandStatusCommandExecutionCancelled[interface{}] + var r0 *compute.WaitCommandStatusCommandExecutionCancelled[struct{}] var r1 error - if rf, ok := ret.Get(0).(func(context.Context, compute.CancelCommand) (*compute.WaitCommandStatusCommandExecutionCancelled[interface{}], error)); ok { + if rf, ok := ret.Get(0).(func(context.Context, compute.CancelCommand) (*compute.WaitCommandStatusCommandExecutionCancelled[struct{}], error)); ok { return rf(ctx, cancelCommand) } - if rf, ok := ret.Get(0).(func(context.Context, compute.CancelCommand) *compute.WaitCommandStatusCommandExecutionCancelled[interface{}]); ok { + if rf, ok := ret.Get(0).(func(context.Context, compute.CancelCommand) *compute.WaitCommandStatusCommandExecutionCancelled[struct{}]); ok { r0 = rf(ctx, cancelCommand) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*compute.WaitCommandStatusCommandExecutionCancelled[interface{}]) + r0 = ret.Get(0).(*compute.WaitCommandStatusCommandExecutionCancelled[struct{}]) } } @@ -76,12 +76,12 @@ func (_c *MockCommandExecutionInterface_Cancel_Call) Run(run func(ctx context.Co return _c } -func (_c *MockCommandExecutionInterface_Cancel_Call) Return(_a0 *compute.WaitCommandStatusCommandExecutionCancelled[interface{}], _a1 error) *MockCommandExecutionInterface_Cancel_Call { +func (_c *MockCommandExecutionInterface_Cancel_Call) Return(_a0 *compute.WaitCommandStatusCommandExecutionCancelled[struct{}], _a1 error) *MockCommandExecutionInterface_Cancel_Call { _c.Call.Return(_a0, _a1) return _c } -func (_c *MockCommandExecutionInterface_Cancel_Call) RunAndReturn(run func(context.Context, compute.CancelCommand) (*compute.WaitCommandStatusCommandExecutionCancelled[interface{}], error)) *MockCommandExecutionInterface_Cancel_Call { +func (_c *MockCommandExecutionInterface_Cancel_Call) RunAndReturn(run func(context.Context, compute.CancelCommand) (*compute.WaitCommandStatusCommandExecutionCancelled[struct{}], error)) *MockCommandExecutionInterface_Cancel_Call { _c.Call.Return(run) return _c } diff --git a/experimental/mocks/service/compute/mock_global_init_scripts_interface.go b/experimental/mocks/service/compute/mock_global_init_scripts_interface.go index 275706d9a..7af3042a7 100644 --- a/experimental/mocks/service/compute/mock_global_init_scripts_interface.go +++ b/experimental/mocks/service/compute/mock_global_init_scripts_interface.go @@ -461,19 +461,19 @@ func (_c *MockGlobalInitScriptsInterface_Impl_Call) RunAndReturn(run func() comp } // List provides a mock function with given fields: ctx -func (_m *MockGlobalInitScriptsInterface) List(ctx context.Context) *listing.PaginatingIterator[struct{}, *compute.ListGlobalInitScriptsResponse, compute.GlobalInitScriptDetails] { +func (_m *MockGlobalInitScriptsInterface) List(ctx context.Context) listing.Iterator[compute.GlobalInitScriptDetails] { ret := _m.Called(ctx) if len(ret) == 0 { panic("no return value specified for List") } - var r0 *listing.PaginatingIterator[struct{}, *compute.ListGlobalInitScriptsResponse, compute.GlobalInitScriptDetails] - if rf, ok := ret.Get(0).(func(context.Context) *listing.PaginatingIterator[struct{}, *compute.ListGlobalInitScriptsResponse, compute.GlobalInitScriptDetails]); ok { + var r0 listing.Iterator[compute.GlobalInitScriptDetails] + if rf, ok := ret.Get(0).(func(context.Context) listing.Iterator[compute.GlobalInitScriptDetails]); ok { r0 = rf(ctx) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.PaginatingIterator[struct{}, *compute.ListGlobalInitScriptsResponse, compute.GlobalInitScriptDetails]) + r0 = ret.Get(0).(listing.Iterator[compute.GlobalInitScriptDetails]) } } @@ -498,12 +498,12 @@ func (_c *MockGlobalInitScriptsInterface_List_Call) Run(run func(ctx context.Con return _c } -func (_c *MockGlobalInitScriptsInterface_List_Call) Return(_a0 *listing.PaginatingIterator[struct{}, *compute.ListGlobalInitScriptsResponse, compute.GlobalInitScriptDetails]) *MockGlobalInitScriptsInterface_List_Call { +func (_c *MockGlobalInitScriptsInterface_List_Call) Return(_a0 listing.Iterator[compute.GlobalInitScriptDetails]) *MockGlobalInitScriptsInterface_List_Call { _c.Call.Return(_a0) return _c } -func (_c *MockGlobalInitScriptsInterface_List_Call) RunAndReturn(run func(context.Context) *listing.PaginatingIterator[struct{}, *compute.ListGlobalInitScriptsResponse, compute.GlobalInitScriptDetails]) *MockGlobalInitScriptsInterface_List_Call { +func (_c *MockGlobalInitScriptsInterface_List_Call) RunAndReturn(run func(context.Context) listing.Iterator[compute.GlobalInitScriptDetails]) *MockGlobalInitScriptsInterface_List_Call { _c.Call.Return(run) return _c } diff --git a/experimental/mocks/service/compute/mock_instance_pools_interface.go b/experimental/mocks/service/compute/mock_instance_pools_interface.go index 29cd4aec9..a44a550a9 100644 --- a/experimental/mocks/service/compute/mock_instance_pools_interface.go +++ b/experimental/mocks/service/compute/mock_instance_pools_interface.go @@ -744,19 +744,19 @@ func (_c *MockInstancePoolsInterface_InstancePoolAndStatsInstancePoolNameToInsta } // List provides a mock function with given fields: ctx -func (_m *MockInstancePoolsInterface) List(ctx context.Context) *listing.PaginatingIterator[struct{}, *compute.ListInstancePools, compute.InstancePoolAndStats] { +func (_m *MockInstancePoolsInterface) List(ctx context.Context) listing.Iterator[compute.InstancePoolAndStats] { ret := _m.Called(ctx) if len(ret) == 0 { panic("no return value specified for List") } - var r0 *listing.PaginatingIterator[struct{}, *compute.ListInstancePools, compute.InstancePoolAndStats] - if rf, ok := ret.Get(0).(func(context.Context) *listing.PaginatingIterator[struct{}, *compute.ListInstancePools, compute.InstancePoolAndStats]); ok { + var r0 listing.Iterator[compute.InstancePoolAndStats] + if rf, ok := ret.Get(0).(func(context.Context) listing.Iterator[compute.InstancePoolAndStats]); ok { r0 = rf(ctx) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.PaginatingIterator[struct{}, *compute.ListInstancePools, compute.InstancePoolAndStats]) + r0 = ret.Get(0).(listing.Iterator[compute.InstancePoolAndStats]) } } @@ -781,12 +781,12 @@ func (_c *MockInstancePoolsInterface_List_Call) Run(run func(ctx context.Context return _c } -func (_c *MockInstancePoolsInterface_List_Call) Return(_a0 *listing.PaginatingIterator[struct{}, *compute.ListInstancePools, compute.InstancePoolAndStats]) *MockInstancePoolsInterface_List_Call { +func (_c *MockInstancePoolsInterface_List_Call) Return(_a0 listing.Iterator[compute.InstancePoolAndStats]) *MockInstancePoolsInterface_List_Call { _c.Call.Return(_a0) return _c } -func (_c *MockInstancePoolsInterface_List_Call) RunAndReturn(run func(context.Context) *listing.PaginatingIterator[struct{}, *compute.ListInstancePools, compute.InstancePoolAndStats]) *MockInstancePoolsInterface_List_Call { +func (_c *MockInstancePoolsInterface_List_Call) RunAndReturn(run func(context.Context) listing.Iterator[compute.InstancePoolAndStats]) *MockInstancePoolsInterface_List_Call { _c.Call.Return(run) return _c } diff --git a/experimental/mocks/service/compute/mock_instance_profiles_interface.go b/experimental/mocks/service/compute/mock_instance_profiles_interface.go index c2f270f75..86113ccf1 100644 --- a/experimental/mocks/service/compute/mock_instance_profiles_interface.go +++ b/experimental/mocks/service/compute/mock_instance_profiles_interface.go @@ -167,19 +167,19 @@ func (_c *MockInstanceProfilesInterface_Impl_Call) RunAndReturn(run func() compu } // List provides a mock function with given fields: ctx -func (_m *MockInstanceProfilesInterface) List(ctx context.Context) *listing.PaginatingIterator[struct{}, *compute.ListInstanceProfilesResponse, compute.InstanceProfile] { +func (_m *MockInstanceProfilesInterface) List(ctx context.Context) listing.Iterator[compute.InstanceProfile] { ret := _m.Called(ctx) if len(ret) == 0 { panic("no return value specified for List") } - var r0 *listing.PaginatingIterator[struct{}, *compute.ListInstanceProfilesResponse, compute.InstanceProfile] - if rf, ok := ret.Get(0).(func(context.Context) *listing.PaginatingIterator[struct{}, *compute.ListInstanceProfilesResponse, compute.InstanceProfile]); ok { + var r0 listing.Iterator[compute.InstanceProfile] + if rf, ok := ret.Get(0).(func(context.Context) listing.Iterator[compute.InstanceProfile]); ok { r0 = rf(ctx) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.PaginatingIterator[struct{}, *compute.ListInstanceProfilesResponse, compute.InstanceProfile]) + r0 = ret.Get(0).(listing.Iterator[compute.InstanceProfile]) } } @@ -204,12 +204,12 @@ func (_c *MockInstanceProfilesInterface_List_Call) Run(run func(ctx context.Cont return _c } -func (_c *MockInstanceProfilesInterface_List_Call) Return(_a0 *listing.PaginatingIterator[struct{}, *compute.ListInstanceProfilesResponse, compute.InstanceProfile]) *MockInstanceProfilesInterface_List_Call { +func (_c *MockInstanceProfilesInterface_List_Call) Return(_a0 listing.Iterator[compute.InstanceProfile]) *MockInstanceProfilesInterface_List_Call { _c.Call.Return(_a0) return _c } -func (_c *MockInstanceProfilesInterface_List_Call) RunAndReturn(run func(context.Context) *listing.PaginatingIterator[struct{}, *compute.ListInstanceProfilesResponse, compute.InstanceProfile]) *MockInstanceProfilesInterface_List_Call { +func (_c *MockInstanceProfilesInterface_List_Call) RunAndReturn(run func(context.Context) listing.Iterator[compute.InstanceProfile]) *MockInstanceProfilesInterface_List_Call { _c.Call.Return(run) return _c } diff --git a/experimental/mocks/service/compute/mock_libraries_interface.go b/experimental/mocks/service/compute/mock_libraries_interface.go index ef4a44afd..d49421deb 100644 --- a/experimental/mocks/service/compute/mock_libraries_interface.go +++ b/experimental/mocks/service/compute/mock_libraries_interface.go @@ -86,19 +86,19 @@ func (_c *MockLibrariesInterface_AllClusterStatuses_Call) RunAndReturn(run func( } // ClusterStatus provides a mock function with given fields: ctx, request -func (_m *MockLibrariesInterface) ClusterStatus(ctx context.Context, request compute.ClusterStatusRequest) *listing.PaginatingIterator[compute.ClusterStatusRequest, *compute.ClusterLibraryStatuses, compute.LibraryFullStatus] { +func (_m *MockLibrariesInterface) ClusterStatus(ctx context.Context, request compute.ClusterStatusRequest) listing.Iterator[compute.LibraryFullStatus] { ret := _m.Called(ctx, request) if len(ret) == 0 { panic("no return value specified for ClusterStatus") } - var r0 *listing.PaginatingIterator[compute.ClusterStatusRequest, *compute.ClusterLibraryStatuses, compute.LibraryFullStatus] - if rf, ok := ret.Get(0).(func(context.Context, compute.ClusterStatusRequest) *listing.PaginatingIterator[compute.ClusterStatusRequest, *compute.ClusterLibraryStatuses, compute.LibraryFullStatus]); ok { + var r0 listing.Iterator[compute.LibraryFullStatus] + if rf, ok := ret.Get(0).(func(context.Context, compute.ClusterStatusRequest) listing.Iterator[compute.LibraryFullStatus]); ok { r0 = rf(ctx, request) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.PaginatingIterator[compute.ClusterStatusRequest, *compute.ClusterLibraryStatuses, compute.LibraryFullStatus]) + r0 = ret.Get(0).(listing.Iterator[compute.LibraryFullStatus]) } } @@ -124,12 +124,12 @@ func (_c *MockLibrariesInterface_ClusterStatus_Call) Run(run func(ctx context.Co return _c } -func (_c *MockLibrariesInterface_ClusterStatus_Call) Return(_a0 *listing.PaginatingIterator[compute.ClusterStatusRequest, *compute.ClusterLibraryStatuses, compute.LibraryFullStatus]) *MockLibrariesInterface_ClusterStatus_Call { +func (_c *MockLibrariesInterface_ClusterStatus_Call) Return(_a0 listing.Iterator[compute.LibraryFullStatus]) *MockLibrariesInterface_ClusterStatus_Call { _c.Call.Return(_a0) return _c } -func (_c *MockLibrariesInterface_ClusterStatus_Call) RunAndReturn(run func(context.Context, compute.ClusterStatusRequest) *listing.PaginatingIterator[compute.ClusterStatusRequest, *compute.ClusterLibraryStatuses, compute.LibraryFullStatus]) *MockLibrariesInterface_ClusterStatus_Call { +func (_c *MockLibrariesInterface_ClusterStatus_Call) RunAndReturn(run func(context.Context, compute.ClusterStatusRequest) listing.Iterator[compute.LibraryFullStatus]) *MockLibrariesInterface_ClusterStatus_Call { _c.Call.Return(run) return _c } diff --git a/experimental/mocks/service/compute/mock_policy_families_interface.go b/experimental/mocks/service/compute/mock_policy_families_interface.go index 15a5c93e5..6edefc59f 100644 --- a/experimental/mocks/service/compute/mock_policy_families_interface.go +++ b/experimental/mocks/service/compute/mock_policy_families_interface.go @@ -191,19 +191,19 @@ func (_c *MockPolicyFamiliesInterface_Impl_Call) RunAndReturn(run func() compute } // List provides a mock function with given fields: ctx, request -func (_m *MockPolicyFamiliesInterface) List(ctx context.Context, request compute.ListPolicyFamiliesRequest) *listing.PaginatingIterator[compute.ListPolicyFamiliesRequest, *compute.ListPolicyFamiliesResponse, compute.PolicyFamily] { +func (_m *MockPolicyFamiliesInterface) List(ctx context.Context, request compute.ListPolicyFamiliesRequest) listing.Iterator[compute.PolicyFamily] { ret := _m.Called(ctx, request) if len(ret) == 0 { panic("no return value specified for List") } - var r0 *listing.PaginatingIterator[compute.ListPolicyFamiliesRequest, *compute.ListPolicyFamiliesResponse, compute.PolicyFamily] - if rf, ok := ret.Get(0).(func(context.Context, compute.ListPolicyFamiliesRequest) *listing.PaginatingIterator[compute.ListPolicyFamiliesRequest, *compute.ListPolicyFamiliesResponse, compute.PolicyFamily]); ok { + var r0 listing.Iterator[compute.PolicyFamily] + if rf, ok := ret.Get(0).(func(context.Context, compute.ListPolicyFamiliesRequest) listing.Iterator[compute.PolicyFamily]); ok { r0 = rf(ctx, request) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.PaginatingIterator[compute.ListPolicyFamiliesRequest, *compute.ListPolicyFamiliesResponse, compute.PolicyFamily]) + r0 = ret.Get(0).(listing.Iterator[compute.PolicyFamily]) } } @@ -229,12 +229,12 @@ func (_c *MockPolicyFamiliesInterface_List_Call) Run(run func(ctx context.Contex return _c } -func (_c *MockPolicyFamiliesInterface_List_Call) Return(_a0 *listing.PaginatingIterator[compute.ListPolicyFamiliesRequest, *compute.ListPolicyFamiliesResponse, compute.PolicyFamily]) *MockPolicyFamiliesInterface_List_Call { +func (_c *MockPolicyFamiliesInterface_List_Call) Return(_a0 listing.Iterator[compute.PolicyFamily]) *MockPolicyFamiliesInterface_List_Call { _c.Call.Return(_a0) return _c } -func (_c *MockPolicyFamiliesInterface_List_Call) RunAndReturn(run func(context.Context, compute.ListPolicyFamiliesRequest) *listing.PaginatingIterator[compute.ListPolicyFamiliesRequest, *compute.ListPolicyFamiliesResponse, compute.PolicyFamily]) *MockPolicyFamiliesInterface_List_Call { +func (_c *MockPolicyFamiliesInterface_List_Call) RunAndReturn(run func(context.Context, compute.ListPolicyFamiliesRequest) listing.Iterator[compute.PolicyFamily]) *MockPolicyFamiliesInterface_List_Call { _c.Call.Return(run) return _c } diff --git a/experimental/mocks/service/files/mock_dbfs_interface.go b/experimental/mocks/service/files/mock_dbfs_interface.go index d72dd1f88..660775124 100644 --- a/experimental/mocks/service/files/mock_dbfs_interface.go +++ b/experimental/mocks/service/files/mock_dbfs_interface.go @@ -437,19 +437,19 @@ func (_c *MockDbfsInterface_Impl_Call) RunAndReturn(run func() files.DbfsService } // List provides a mock function with given fields: ctx, request -func (_m *MockDbfsInterface) List(ctx context.Context, request files.ListDbfsRequest) *listing.PaginatingIterator[files.ListDbfsRequest, *files.ListStatusResponse, files.FileInfo] { +func (_m *MockDbfsInterface) List(ctx context.Context, request files.ListDbfsRequest) listing.Iterator[files.FileInfo] { ret := _m.Called(ctx, request) if len(ret) == 0 { panic("no return value specified for List") } - var r0 *listing.PaginatingIterator[files.ListDbfsRequest, *files.ListStatusResponse, files.FileInfo] - if rf, ok := ret.Get(0).(func(context.Context, files.ListDbfsRequest) *listing.PaginatingIterator[files.ListDbfsRequest, *files.ListStatusResponse, files.FileInfo]); ok { + var r0 listing.Iterator[files.FileInfo] + if rf, ok := ret.Get(0).(func(context.Context, files.ListDbfsRequest) listing.Iterator[files.FileInfo]); ok { r0 = rf(ctx, request) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.PaginatingIterator[files.ListDbfsRequest, *files.ListStatusResponse, files.FileInfo]) + r0 = ret.Get(0).(listing.Iterator[files.FileInfo]) } } @@ -475,12 +475,12 @@ func (_c *MockDbfsInterface_List_Call) Run(run func(ctx context.Context, request return _c } -func (_c *MockDbfsInterface_List_Call) Return(_a0 *listing.PaginatingIterator[files.ListDbfsRequest, *files.ListStatusResponse, files.FileInfo]) *MockDbfsInterface_List_Call { +func (_c *MockDbfsInterface_List_Call) Return(_a0 listing.Iterator[files.FileInfo]) *MockDbfsInterface_List_Call { _c.Call.Return(_a0) return _c } -func (_c *MockDbfsInterface_List_Call) RunAndReturn(run func(context.Context, files.ListDbfsRequest) *listing.PaginatingIterator[files.ListDbfsRequest, *files.ListStatusResponse, files.FileInfo]) *MockDbfsInterface_List_Call { +func (_c *MockDbfsInterface_List_Call) RunAndReturn(run func(context.Context, files.ListDbfsRequest) listing.Iterator[files.FileInfo]) *MockDbfsInterface_List_Call { _c.Call.Return(run) return _c } diff --git a/experimental/mocks/service/iam/mock_account_groups_interface.go b/experimental/mocks/service/iam/mock_account_groups_interface.go index 1765a6e6f..491894611 100644 --- a/experimental/mocks/service/iam/mock_account_groups_interface.go +++ b/experimental/mocks/service/iam/mock_account_groups_interface.go @@ -461,19 +461,19 @@ func (_c *MockAccountGroupsInterface_Impl_Call) RunAndReturn(run func() iam.Acco } // List provides a mock function with given fields: ctx, request -func (_m *MockAccountGroupsInterface) List(ctx context.Context, request iam.ListAccountGroupsRequest) *listing.DeduplicatingIterator[iam.Group, string] { +func (_m *MockAccountGroupsInterface) List(ctx context.Context, request iam.ListAccountGroupsRequest) listing.Iterator[iam.Group] { ret := _m.Called(ctx, request) if len(ret) == 0 { panic("no return value specified for List") } - var r0 *listing.DeduplicatingIterator[iam.Group, string] - if rf, ok := ret.Get(0).(func(context.Context, iam.ListAccountGroupsRequest) *listing.DeduplicatingIterator[iam.Group, string]); ok { + var r0 listing.Iterator[iam.Group] + if rf, ok := ret.Get(0).(func(context.Context, iam.ListAccountGroupsRequest) listing.Iterator[iam.Group]); ok { r0 = rf(ctx, request) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.DeduplicatingIterator[iam.Group, string]) + r0 = ret.Get(0).(listing.Iterator[iam.Group]) } } @@ -499,12 +499,12 @@ func (_c *MockAccountGroupsInterface_List_Call) Run(run func(ctx context.Context return _c } -func (_c *MockAccountGroupsInterface_List_Call) Return(_a0 *listing.DeduplicatingIterator[iam.Group, string]) *MockAccountGroupsInterface_List_Call { +func (_c *MockAccountGroupsInterface_List_Call) Return(_a0 listing.Iterator[iam.Group]) *MockAccountGroupsInterface_List_Call { _c.Call.Return(_a0) return _c } -func (_c *MockAccountGroupsInterface_List_Call) RunAndReturn(run func(context.Context, iam.ListAccountGroupsRequest) *listing.DeduplicatingIterator[iam.Group, string]) *MockAccountGroupsInterface_List_Call { +func (_c *MockAccountGroupsInterface_List_Call) RunAndReturn(run func(context.Context, iam.ListAccountGroupsRequest) listing.Iterator[iam.Group]) *MockAccountGroupsInterface_List_Call { _c.Call.Return(run) return _c } diff --git a/experimental/mocks/service/iam/mock_account_service_principals_interface.go b/experimental/mocks/service/iam/mock_account_service_principals_interface.go index 0e03fd8b3..87e84412b 100644 --- a/experimental/mocks/service/iam/mock_account_service_principals_interface.go +++ b/experimental/mocks/service/iam/mock_account_service_principals_interface.go @@ -402,19 +402,19 @@ func (_c *MockAccountServicePrincipalsInterface_Impl_Call) RunAndReturn(run func } // List provides a mock function with given fields: ctx, request -func (_m *MockAccountServicePrincipalsInterface) List(ctx context.Context, request iam.ListAccountServicePrincipalsRequest) *listing.DeduplicatingIterator[iam.ServicePrincipal, string] { +func (_m *MockAccountServicePrincipalsInterface) List(ctx context.Context, request iam.ListAccountServicePrincipalsRequest) listing.Iterator[iam.ServicePrincipal] { ret := _m.Called(ctx, request) if len(ret) == 0 { panic("no return value specified for List") } - var r0 *listing.DeduplicatingIterator[iam.ServicePrincipal, string] - if rf, ok := ret.Get(0).(func(context.Context, iam.ListAccountServicePrincipalsRequest) *listing.DeduplicatingIterator[iam.ServicePrincipal, string]); ok { + var r0 listing.Iterator[iam.ServicePrincipal] + if rf, ok := ret.Get(0).(func(context.Context, iam.ListAccountServicePrincipalsRequest) listing.Iterator[iam.ServicePrincipal]); ok { r0 = rf(ctx, request) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.DeduplicatingIterator[iam.ServicePrincipal, string]) + r0 = ret.Get(0).(listing.Iterator[iam.ServicePrincipal]) } } @@ -440,12 +440,12 @@ func (_c *MockAccountServicePrincipalsInterface_List_Call) Run(run func(ctx cont return _c } -func (_c *MockAccountServicePrincipalsInterface_List_Call) Return(_a0 *listing.DeduplicatingIterator[iam.ServicePrincipal, string]) *MockAccountServicePrincipalsInterface_List_Call { +func (_c *MockAccountServicePrincipalsInterface_List_Call) Return(_a0 listing.Iterator[iam.ServicePrincipal]) *MockAccountServicePrincipalsInterface_List_Call { _c.Call.Return(_a0) return _c } -func (_c *MockAccountServicePrincipalsInterface_List_Call) RunAndReturn(run func(context.Context, iam.ListAccountServicePrincipalsRequest) *listing.DeduplicatingIterator[iam.ServicePrincipal, string]) *MockAccountServicePrincipalsInterface_List_Call { +func (_c *MockAccountServicePrincipalsInterface_List_Call) RunAndReturn(run func(context.Context, iam.ListAccountServicePrincipalsRequest) listing.Iterator[iam.ServicePrincipal]) *MockAccountServicePrincipalsInterface_List_Call { _c.Call.Return(run) return _c } diff --git a/experimental/mocks/service/iam/mock_account_users_interface.go b/experimental/mocks/service/iam/mock_account_users_interface.go index 8709c4022..2ea3bea87 100644 --- a/experimental/mocks/service/iam/mock_account_users_interface.go +++ b/experimental/mocks/service/iam/mock_account_users_interface.go @@ -402,19 +402,19 @@ func (_c *MockAccountUsersInterface_Impl_Call) RunAndReturn(run func() iam.Accou } // List provides a mock function with given fields: ctx, request -func (_m *MockAccountUsersInterface) List(ctx context.Context, request iam.ListAccountUsersRequest) *listing.DeduplicatingIterator[iam.User, string] { +func (_m *MockAccountUsersInterface) List(ctx context.Context, request iam.ListAccountUsersRequest) listing.Iterator[iam.User] { ret := _m.Called(ctx, request) if len(ret) == 0 { panic("no return value specified for List") } - var r0 *listing.DeduplicatingIterator[iam.User, string] - if rf, ok := ret.Get(0).(func(context.Context, iam.ListAccountUsersRequest) *listing.DeduplicatingIterator[iam.User, string]); ok { + var r0 listing.Iterator[iam.User] + if rf, ok := ret.Get(0).(func(context.Context, iam.ListAccountUsersRequest) listing.Iterator[iam.User]); ok { r0 = rf(ctx, request) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.DeduplicatingIterator[iam.User, string]) + r0 = ret.Get(0).(listing.Iterator[iam.User]) } } @@ -440,12 +440,12 @@ func (_c *MockAccountUsersInterface_List_Call) Run(run func(ctx context.Context, return _c } -func (_c *MockAccountUsersInterface_List_Call) Return(_a0 *listing.DeduplicatingIterator[iam.User, string]) *MockAccountUsersInterface_List_Call { +func (_c *MockAccountUsersInterface_List_Call) Return(_a0 listing.Iterator[iam.User]) *MockAccountUsersInterface_List_Call { _c.Call.Return(_a0) return _c } -func (_c *MockAccountUsersInterface_List_Call) RunAndReturn(run func(context.Context, iam.ListAccountUsersRequest) *listing.DeduplicatingIterator[iam.User, string]) *MockAccountUsersInterface_List_Call { +func (_c *MockAccountUsersInterface_List_Call) RunAndReturn(run func(context.Context, iam.ListAccountUsersRequest) listing.Iterator[iam.User]) *MockAccountUsersInterface_List_Call { _c.Call.Return(run) return _c } diff --git a/experimental/mocks/service/iam/mock_groups_interface.go b/experimental/mocks/service/iam/mock_groups_interface.go index d7bd628a4..835525bb2 100644 --- a/experimental/mocks/service/iam/mock_groups_interface.go +++ b/experimental/mocks/service/iam/mock_groups_interface.go @@ -461,19 +461,19 @@ func (_c *MockGroupsInterface_Impl_Call) RunAndReturn(run func() iam.GroupsServi } // List provides a mock function with given fields: ctx, request -func (_m *MockGroupsInterface) List(ctx context.Context, request iam.ListGroupsRequest) *listing.DeduplicatingIterator[iam.Group, string] { +func (_m *MockGroupsInterface) List(ctx context.Context, request iam.ListGroupsRequest) listing.Iterator[iam.Group] { ret := _m.Called(ctx, request) if len(ret) == 0 { panic("no return value specified for List") } - var r0 *listing.DeduplicatingIterator[iam.Group, string] - if rf, ok := ret.Get(0).(func(context.Context, iam.ListGroupsRequest) *listing.DeduplicatingIterator[iam.Group, string]); ok { + var r0 listing.Iterator[iam.Group] + if rf, ok := ret.Get(0).(func(context.Context, iam.ListGroupsRequest) listing.Iterator[iam.Group]); ok { r0 = rf(ctx, request) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.DeduplicatingIterator[iam.Group, string]) + r0 = ret.Get(0).(listing.Iterator[iam.Group]) } } @@ -499,12 +499,12 @@ func (_c *MockGroupsInterface_List_Call) Run(run func(ctx context.Context, reque return _c } -func (_c *MockGroupsInterface_List_Call) Return(_a0 *listing.DeduplicatingIterator[iam.Group, string]) *MockGroupsInterface_List_Call { +func (_c *MockGroupsInterface_List_Call) Return(_a0 listing.Iterator[iam.Group]) *MockGroupsInterface_List_Call { _c.Call.Return(_a0) return _c } -func (_c *MockGroupsInterface_List_Call) RunAndReturn(run func(context.Context, iam.ListGroupsRequest) *listing.DeduplicatingIterator[iam.Group, string]) *MockGroupsInterface_List_Call { +func (_c *MockGroupsInterface_List_Call) RunAndReturn(run func(context.Context, iam.ListGroupsRequest) listing.Iterator[iam.Group]) *MockGroupsInterface_List_Call { _c.Call.Return(run) return _c } diff --git a/experimental/mocks/service/iam/mock_service_principals_interface.go b/experimental/mocks/service/iam/mock_service_principals_interface.go index 0c1234e07..d6da02913 100644 --- a/experimental/mocks/service/iam/mock_service_principals_interface.go +++ b/experimental/mocks/service/iam/mock_service_principals_interface.go @@ -402,19 +402,19 @@ func (_c *MockServicePrincipalsInterface_Impl_Call) RunAndReturn(run func() iam. } // List provides a mock function with given fields: ctx, request -func (_m *MockServicePrincipalsInterface) List(ctx context.Context, request iam.ListServicePrincipalsRequest) *listing.DeduplicatingIterator[iam.ServicePrincipal, string] { +func (_m *MockServicePrincipalsInterface) List(ctx context.Context, request iam.ListServicePrincipalsRequest) listing.Iterator[iam.ServicePrincipal] { ret := _m.Called(ctx, request) if len(ret) == 0 { panic("no return value specified for List") } - var r0 *listing.DeduplicatingIterator[iam.ServicePrincipal, string] - if rf, ok := ret.Get(0).(func(context.Context, iam.ListServicePrincipalsRequest) *listing.DeduplicatingIterator[iam.ServicePrincipal, string]); ok { + var r0 listing.Iterator[iam.ServicePrincipal] + if rf, ok := ret.Get(0).(func(context.Context, iam.ListServicePrincipalsRequest) listing.Iterator[iam.ServicePrincipal]); ok { r0 = rf(ctx, request) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.DeduplicatingIterator[iam.ServicePrincipal, string]) + r0 = ret.Get(0).(listing.Iterator[iam.ServicePrincipal]) } } @@ -440,12 +440,12 @@ func (_c *MockServicePrincipalsInterface_List_Call) Run(run func(ctx context.Con return _c } -func (_c *MockServicePrincipalsInterface_List_Call) Return(_a0 *listing.DeduplicatingIterator[iam.ServicePrincipal, string]) *MockServicePrincipalsInterface_List_Call { +func (_c *MockServicePrincipalsInterface_List_Call) Return(_a0 listing.Iterator[iam.ServicePrincipal]) *MockServicePrincipalsInterface_List_Call { _c.Call.Return(_a0) return _c } -func (_c *MockServicePrincipalsInterface_List_Call) RunAndReturn(run func(context.Context, iam.ListServicePrincipalsRequest) *listing.DeduplicatingIterator[iam.ServicePrincipal, string]) *MockServicePrincipalsInterface_List_Call { +func (_c *MockServicePrincipalsInterface_List_Call) RunAndReturn(run func(context.Context, iam.ListServicePrincipalsRequest) listing.Iterator[iam.ServicePrincipal]) *MockServicePrincipalsInterface_List_Call { _c.Call.Return(run) return _c } diff --git a/experimental/mocks/service/iam/mock_users_interface.go b/experimental/mocks/service/iam/mock_users_interface.go index f81cee247..4aa8925b0 100644 --- a/experimental/mocks/service/iam/mock_users_interface.go +++ b/experimental/mocks/service/iam/mock_users_interface.go @@ -518,19 +518,19 @@ func (_c *MockUsersInterface_Impl_Call) RunAndReturn(run func() iam.UsersService } // List provides a mock function with given fields: ctx, request -func (_m *MockUsersInterface) List(ctx context.Context, request iam.ListUsersRequest) *listing.DeduplicatingIterator[iam.User, string] { +func (_m *MockUsersInterface) List(ctx context.Context, request iam.ListUsersRequest) listing.Iterator[iam.User] { ret := _m.Called(ctx, request) if len(ret) == 0 { panic("no return value specified for List") } - var r0 *listing.DeduplicatingIterator[iam.User, string] - if rf, ok := ret.Get(0).(func(context.Context, iam.ListUsersRequest) *listing.DeduplicatingIterator[iam.User, string]); ok { + var r0 listing.Iterator[iam.User] + if rf, ok := ret.Get(0).(func(context.Context, iam.ListUsersRequest) listing.Iterator[iam.User]); ok { r0 = rf(ctx, request) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.DeduplicatingIterator[iam.User, string]) + r0 = ret.Get(0).(listing.Iterator[iam.User]) } } @@ -556,12 +556,12 @@ func (_c *MockUsersInterface_List_Call) Run(run func(ctx context.Context, reques return _c } -func (_c *MockUsersInterface_List_Call) Return(_a0 *listing.DeduplicatingIterator[iam.User, string]) *MockUsersInterface_List_Call { +func (_c *MockUsersInterface_List_Call) Return(_a0 listing.Iterator[iam.User]) *MockUsersInterface_List_Call { _c.Call.Return(_a0) return _c } -func (_c *MockUsersInterface_List_Call) RunAndReturn(run func(context.Context, iam.ListUsersRequest) *listing.DeduplicatingIterator[iam.User, string]) *MockUsersInterface_List_Call { +func (_c *MockUsersInterface_List_Call) RunAndReturn(run func(context.Context, iam.ListUsersRequest) listing.Iterator[iam.User]) *MockUsersInterface_List_Call { _c.Call.Return(run) return _c } diff --git a/experimental/mocks/service/iam/mock_workspace_assignment_interface.go b/experimental/mocks/service/iam/mock_workspace_assignment_interface.go index cbab7b9ca..2769e3195 100644 --- a/experimental/mocks/service/iam/mock_workspace_assignment_interface.go +++ b/experimental/mocks/service/iam/mock_workspace_assignment_interface.go @@ -285,19 +285,19 @@ func (_c *MockWorkspaceAssignmentInterface_Impl_Call) RunAndReturn(run func() ia } // List provides a mock function with given fields: ctx, request -func (_m *MockWorkspaceAssignmentInterface) List(ctx context.Context, request iam.ListWorkspaceAssignmentRequest) *listing.PaginatingIterator[iam.ListWorkspaceAssignmentRequest, *iam.PermissionAssignments, iam.PermissionAssignment] { +func (_m *MockWorkspaceAssignmentInterface) List(ctx context.Context, request iam.ListWorkspaceAssignmentRequest) listing.Iterator[iam.PermissionAssignment] { ret := _m.Called(ctx, request) if len(ret) == 0 { panic("no return value specified for List") } - var r0 *listing.PaginatingIterator[iam.ListWorkspaceAssignmentRequest, *iam.PermissionAssignments, iam.PermissionAssignment] - if rf, ok := ret.Get(0).(func(context.Context, iam.ListWorkspaceAssignmentRequest) *listing.PaginatingIterator[iam.ListWorkspaceAssignmentRequest, *iam.PermissionAssignments, iam.PermissionAssignment]); ok { + var r0 listing.Iterator[iam.PermissionAssignment] + if rf, ok := ret.Get(0).(func(context.Context, iam.ListWorkspaceAssignmentRequest) listing.Iterator[iam.PermissionAssignment]); ok { r0 = rf(ctx, request) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.PaginatingIterator[iam.ListWorkspaceAssignmentRequest, *iam.PermissionAssignments, iam.PermissionAssignment]) + r0 = ret.Get(0).(listing.Iterator[iam.PermissionAssignment]) } } @@ -323,12 +323,12 @@ func (_c *MockWorkspaceAssignmentInterface_List_Call) Run(run func(ctx context.C return _c } -func (_c *MockWorkspaceAssignmentInterface_List_Call) Return(_a0 *listing.PaginatingIterator[iam.ListWorkspaceAssignmentRequest, *iam.PermissionAssignments, iam.PermissionAssignment]) *MockWorkspaceAssignmentInterface_List_Call { +func (_c *MockWorkspaceAssignmentInterface_List_Call) Return(_a0 listing.Iterator[iam.PermissionAssignment]) *MockWorkspaceAssignmentInterface_List_Call { _c.Call.Return(_a0) return _c } -func (_c *MockWorkspaceAssignmentInterface_List_Call) RunAndReturn(run func(context.Context, iam.ListWorkspaceAssignmentRequest) *listing.PaginatingIterator[iam.ListWorkspaceAssignmentRequest, *iam.PermissionAssignments, iam.PermissionAssignment]) *MockWorkspaceAssignmentInterface_List_Call { +func (_c *MockWorkspaceAssignmentInterface_List_Call) RunAndReturn(run func(context.Context, iam.ListWorkspaceAssignmentRequest) listing.Iterator[iam.PermissionAssignment]) *MockWorkspaceAssignmentInterface_List_Call { _c.Call.Return(run) return _c } diff --git a/experimental/mocks/service/jobs/mock_jobs_interface.go b/experimental/mocks/service/jobs/mock_jobs_interface.go index 061adb86b..01cbdbc63 100644 --- a/experimental/mocks/service/jobs/mock_jobs_interface.go +++ b/experimental/mocks/service/jobs/mock_jobs_interface.go @@ -135,23 +135,23 @@ func (_c *MockJobsInterface_CancelAllRuns_Call) RunAndReturn(run func(context.Co } // CancelRun provides a mock function with given fields: ctx, cancelRun -func (_m *MockJobsInterface) CancelRun(ctx context.Context, cancelRun jobs.CancelRun) (*jobs.WaitGetRunJobTerminatedOrSkipped[interface{}], error) { +func (_m *MockJobsInterface) CancelRun(ctx context.Context, cancelRun jobs.CancelRun) (*jobs.WaitGetRunJobTerminatedOrSkipped[struct{}], error) { ret := _m.Called(ctx, cancelRun) if len(ret) == 0 { panic("no return value specified for CancelRun") } - var r0 *jobs.WaitGetRunJobTerminatedOrSkipped[interface{}] + var r0 *jobs.WaitGetRunJobTerminatedOrSkipped[struct{}] var r1 error - if rf, ok := ret.Get(0).(func(context.Context, jobs.CancelRun) (*jobs.WaitGetRunJobTerminatedOrSkipped[interface{}], error)); ok { + if rf, ok := ret.Get(0).(func(context.Context, jobs.CancelRun) (*jobs.WaitGetRunJobTerminatedOrSkipped[struct{}], error)); ok { return rf(ctx, cancelRun) } - if rf, ok := ret.Get(0).(func(context.Context, jobs.CancelRun) *jobs.WaitGetRunJobTerminatedOrSkipped[interface{}]); ok { + if rf, ok := ret.Get(0).(func(context.Context, jobs.CancelRun) *jobs.WaitGetRunJobTerminatedOrSkipped[struct{}]); ok { r0 = rf(ctx, cancelRun) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*jobs.WaitGetRunJobTerminatedOrSkipped[interface{}]) + r0 = ret.Get(0).(*jobs.WaitGetRunJobTerminatedOrSkipped[struct{}]) } } @@ -183,12 +183,12 @@ func (_c *MockJobsInterface_CancelRun_Call) Run(run func(ctx context.Context, ca return _c } -func (_c *MockJobsInterface_CancelRun_Call) Return(_a0 *jobs.WaitGetRunJobTerminatedOrSkipped[interface{}], _a1 error) *MockJobsInterface_CancelRun_Call { +func (_c *MockJobsInterface_CancelRun_Call) Return(_a0 *jobs.WaitGetRunJobTerminatedOrSkipped[struct{}], _a1 error) *MockJobsInterface_CancelRun_Call { _c.Call.Return(_a0, _a1) return _c } -func (_c *MockJobsInterface_CancelRun_Call) RunAndReturn(run func(context.Context, jobs.CancelRun) (*jobs.WaitGetRunJobTerminatedOrSkipped[interface{}], error)) *MockJobsInterface_CancelRun_Call { +func (_c *MockJobsInterface_CancelRun_Call) RunAndReturn(run func(context.Context, jobs.CancelRun) (*jobs.WaitGetRunJobTerminatedOrSkipped[struct{}], error)) *MockJobsInterface_CancelRun_Call { _c.Call.Return(run) return _c } @@ -1332,19 +1332,19 @@ func (_c *MockJobsInterface_Impl_Call) RunAndReturn(run func() jobs.JobsService) } // List provides a mock function with given fields: ctx, request -func (_m *MockJobsInterface) List(ctx context.Context, request jobs.ListJobsRequest) *listing.PaginatingIterator[jobs.ListJobsRequest, *jobs.ListJobsResponse, jobs.BaseJob] { +func (_m *MockJobsInterface) List(ctx context.Context, request jobs.ListJobsRequest) listing.Iterator[jobs.BaseJob] { ret := _m.Called(ctx, request) if len(ret) == 0 { panic("no return value specified for List") } - var r0 *listing.PaginatingIterator[jobs.ListJobsRequest, *jobs.ListJobsResponse, jobs.BaseJob] - if rf, ok := ret.Get(0).(func(context.Context, jobs.ListJobsRequest) *listing.PaginatingIterator[jobs.ListJobsRequest, *jobs.ListJobsResponse, jobs.BaseJob]); ok { + var r0 listing.Iterator[jobs.BaseJob] + if rf, ok := ret.Get(0).(func(context.Context, jobs.ListJobsRequest) listing.Iterator[jobs.BaseJob]); ok { r0 = rf(ctx, request) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.PaginatingIterator[jobs.ListJobsRequest, *jobs.ListJobsResponse, jobs.BaseJob]) + r0 = ret.Get(0).(listing.Iterator[jobs.BaseJob]) } } @@ -1370,12 +1370,12 @@ func (_c *MockJobsInterface_List_Call) Run(run func(ctx context.Context, request return _c } -func (_c *MockJobsInterface_List_Call) Return(_a0 *listing.PaginatingIterator[jobs.ListJobsRequest, *jobs.ListJobsResponse, jobs.BaseJob]) *MockJobsInterface_List_Call { +func (_c *MockJobsInterface_List_Call) Return(_a0 listing.Iterator[jobs.BaseJob]) *MockJobsInterface_List_Call { _c.Call.Return(_a0) return _c } -func (_c *MockJobsInterface_List_Call) RunAndReturn(run func(context.Context, jobs.ListJobsRequest) *listing.PaginatingIterator[jobs.ListJobsRequest, *jobs.ListJobsResponse, jobs.BaseJob]) *MockJobsInterface_List_Call { +func (_c *MockJobsInterface_List_Call) RunAndReturn(run func(context.Context, jobs.ListJobsRequest) listing.Iterator[jobs.BaseJob]) *MockJobsInterface_List_Call { _c.Call.Return(run) return _c } @@ -1440,19 +1440,19 @@ func (_c *MockJobsInterface_ListAll_Call) RunAndReturn(run func(context.Context, } // ListRuns provides a mock function with given fields: ctx, request -func (_m *MockJobsInterface) ListRuns(ctx context.Context, request jobs.ListRunsRequest) *listing.PaginatingIterator[jobs.ListRunsRequest, *jobs.ListRunsResponse, jobs.BaseRun] { +func (_m *MockJobsInterface) ListRuns(ctx context.Context, request jobs.ListRunsRequest) listing.Iterator[jobs.BaseRun] { ret := _m.Called(ctx, request) if len(ret) == 0 { panic("no return value specified for ListRuns") } - var r0 *listing.PaginatingIterator[jobs.ListRunsRequest, *jobs.ListRunsResponse, jobs.BaseRun] - if rf, ok := ret.Get(0).(func(context.Context, jobs.ListRunsRequest) *listing.PaginatingIterator[jobs.ListRunsRequest, *jobs.ListRunsResponse, jobs.BaseRun]); ok { + var r0 listing.Iterator[jobs.BaseRun] + if rf, ok := ret.Get(0).(func(context.Context, jobs.ListRunsRequest) listing.Iterator[jobs.BaseRun]); ok { r0 = rf(ctx, request) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.PaginatingIterator[jobs.ListRunsRequest, *jobs.ListRunsResponse, jobs.BaseRun]) + r0 = ret.Get(0).(listing.Iterator[jobs.BaseRun]) } } @@ -1478,12 +1478,12 @@ func (_c *MockJobsInterface_ListRuns_Call) Run(run func(ctx context.Context, req return _c } -func (_c *MockJobsInterface_ListRuns_Call) Return(_a0 *listing.PaginatingIterator[jobs.ListRunsRequest, *jobs.ListRunsResponse, jobs.BaseRun]) *MockJobsInterface_ListRuns_Call { +func (_c *MockJobsInterface_ListRuns_Call) Return(_a0 listing.Iterator[jobs.BaseRun]) *MockJobsInterface_ListRuns_Call { _c.Call.Return(_a0) return _c } -func (_c *MockJobsInterface_ListRuns_Call) RunAndReturn(run func(context.Context, jobs.ListRunsRequest) *listing.PaginatingIterator[jobs.ListRunsRequest, *jobs.ListRunsResponse, jobs.BaseRun]) *MockJobsInterface_ListRuns_Call { +func (_c *MockJobsInterface_ListRuns_Call) RunAndReturn(run func(context.Context, jobs.ListRunsRequest) listing.Iterator[jobs.BaseRun]) *MockJobsInterface_ListRuns_Call { _c.Call.Return(run) return _c } diff --git a/experimental/mocks/service/ml/mock_experiments_interface.go b/experimental/mocks/service/ml/mock_experiments_interface.go index 3c2b2835e..4db8805c9 100644 --- a/experimental/mocks/service/ml/mock_experiments_interface.go +++ b/experimental/mocks/service/ml/mock_experiments_interface.go @@ -461,19 +461,19 @@ func (_c *MockExperimentsInterface_GetExperiment_Call) RunAndReturn(run func(con } // GetHistory provides a mock function with given fields: ctx, request -func (_m *MockExperimentsInterface) GetHistory(ctx context.Context, request ml.GetHistoryRequest) *listing.PaginatingIterator[ml.GetHistoryRequest, *ml.GetMetricHistoryResponse, ml.Metric] { +func (_m *MockExperimentsInterface) GetHistory(ctx context.Context, request ml.GetHistoryRequest) listing.Iterator[ml.Metric] { ret := _m.Called(ctx, request) if len(ret) == 0 { panic("no return value specified for GetHistory") } - var r0 *listing.PaginatingIterator[ml.GetHistoryRequest, *ml.GetMetricHistoryResponse, ml.Metric] - if rf, ok := ret.Get(0).(func(context.Context, ml.GetHistoryRequest) *listing.PaginatingIterator[ml.GetHistoryRequest, *ml.GetMetricHistoryResponse, ml.Metric]); ok { + var r0 listing.Iterator[ml.Metric] + if rf, ok := ret.Get(0).(func(context.Context, ml.GetHistoryRequest) listing.Iterator[ml.Metric]); ok { r0 = rf(ctx, request) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.PaginatingIterator[ml.GetHistoryRequest, *ml.GetMetricHistoryResponse, ml.Metric]) + r0 = ret.Get(0).(listing.Iterator[ml.Metric]) } } @@ -499,12 +499,12 @@ func (_c *MockExperimentsInterface_GetHistory_Call) Run(run func(ctx context.Con return _c } -func (_c *MockExperimentsInterface_GetHistory_Call) Return(_a0 *listing.PaginatingIterator[ml.GetHistoryRequest, *ml.GetMetricHistoryResponse, ml.Metric]) *MockExperimentsInterface_GetHistory_Call { +func (_c *MockExperimentsInterface_GetHistory_Call) Return(_a0 listing.Iterator[ml.Metric]) *MockExperimentsInterface_GetHistory_Call { _c.Call.Return(_a0) return _c } -func (_c *MockExperimentsInterface_GetHistory_Call) RunAndReturn(run func(context.Context, ml.GetHistoryRequest) *listing.PaginatingIterator[ml.GetHistoryRequest, *ml.GetMetricHistoryResponse, ml.Metric]) *MockExperimentsInterface_GetHistory_Call { +func (_c *MockExperimentsInterface_GetHistory_Call) RunAndReturn(run func(context.Context, ml.GetHistoryRequest) listing.Iterator[ml.Metric]) *MockExperimentsInterface_GetHistory_Call { _c.Call.Return(run) return _c } @@ -911,19 +911,19 @@ func (_c *MockExperimentsInterface_Impl_Call) RunAndReturn(run func() ml.Experim } // ListArtifacts provides a mock function with given fields: ctx, request -func (_m *MockExperimentsInterface) ListArtifacts(ctx context.Context, request ml.ListArtifactsRequest) *listing.PaginatingIterator[ml.ListArtifactsRequest, *ml.ListArtifactsResponse, ml.FileInfo] { +func (_m *MockExperimentsInterface) ListArtifacts(ctx context.Context, request ml.ListArtifactsRequest) listing.Iterator[ml.FileInfo] { ret := _m.Called(ctx, request) if len(ret) == 0 { panic("no return value specified for ListArtifacts") } - var r0 *listing.PaginatingIterator[ml.ListArtifactsRequest, *ml.ListArtifactsResponse, ml.FileInfo] - if rf, ok := ret.Get(0).(func(context.Context, ml.ListArtifactsRequest) *listing.PaginatingIterator[ml.ListArtifactsRequest, *ml.ListArtifactsResponse, ml.FileInfo]); ok { + var r0 listing.Iterator[ml.FileInfo] + if rf, ok := ret.Get(0).(func(context.Context, ml.ListArtifactsRequest) listing.Iterator[ml.FileInfo]); ok { r0 = rf(ctx, request) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.PaginatingIterator[ml.ListArtifactsRequest, *ml.ListArtifactsResponse, ml.FileInfo]) + r0 = ret.Get(0).(listing.Iterator[ml.FileInfo]) } } @@ -949,12 +949,12 @@ func (_c *MockExperimentsInterface_ListArtifacts_Call) Run(run func(ctx context. return _c } -func (_c *MockExperimentsInterface_ListArtifacts_Call) Return(_a0 *listing.PaginatingIterator[ml.ListArtifactsRequest, *ml.ListArtifactsResponse, ml.FileInfo]) *MockExperimentsInterface_ListArtifacts_Call { +func (_c *MockExperimentsInterface_ListArtifacts_Call) Return(_a0 listing.Iterator[ml.FileInfo]) *MockExperimentsInterface_ListArtifacts_Call { _c.Call.Return(_a0) return _c } -func (_c *MockExperimentsInterface_ListArtifacts_Call) RunAndReturn(run func(context.Context, ml.ListArtifactsRequest) *listing.PaginatingIterator[ml.ListArtifactsRequest, *ml.ListArtifactsResponse, ml.FileInfo]) *MockExperimentsInterface_ListArtifacts_Call { +func (_c *MockExperimentsInterface_ListArtifacts_Call) RunAndReturn(run func(context.Context, ml.ListArtifactsRequest) listing.Iterator[ml.FileInfo]) *MockExperimentsInterface_ListArtifacts_Call { _c.Call.Return(run) return _c } @@ -1019,19 +1019,19 @@ func (_c *MockExperimentsInterface_ListArtifactsAll_Call) RunAndReturn(run func( } // ListExperiments provides a mock function with given fields: ctx, request -func (_m *MockExperimentsInterface) ListExperiments(ctx context.Context, request ml.ListExperimentsRequest) *listing.PaginatingIterator[ml.ListExperimentsRequest, *ml.ListExperimentsResponse, ml.Experiment] { +func (_m *MockExperimentsInterface) ListExperiments(ctx context.Context, request ml.ListExperimentsRequest) listing.Iterator[ml.Experiment] { ret := _m.Called(ctx, request) if len(ret) == 0 { panic("no return value specified for ListExperiments") } - var r0 *listing.PaginatingIterator[ml.ListExperimentsRequest, *ml.ListExperimentsResponse, ml.Experiment] - if rf, ok := ret.Get(0).(func(context.Context, ml.ListExperimentsRequest) *listing.PaginatingIterator[ml.ListExperimentsRequest, *ml.ListExperimentsResponse, ml.Experiment]); ok { + var r0 listing.Iterator[ml.Experiment] + if rf, ok := ret.Get(0).(func(context.Context, ml.ListExperimentsRequest) listing.Iterator[ml.Experiment]); ok { r0 = rf(ctx, request) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.PaginatingIterator[ml.ListExperimentsRequest, *ml.ListExperimentsResponse, ml.Experiment]) + r0 = ret.Get(0).(listing.Iterator[ml.Experiment]) } } @@ -1057,12 +1057,12 @@ func (_c *MockExperimentsInterface_ListExperiments_Call) Run(run func(ctx contex return _c } -func (_c *MockExperimentsInterface_ListExperiments_Call) Return(_a0 *listing.PaginatingIterator[ml.ListExperimentsRequest, *ml.ListExperimentsResponse, ml.Experiment]) *MockExperimentsInterface_ListExperiments_Call { +func (_c *MockExperimentsInterface_ListExperiments_Call) Return(_a0 listing.Iterator[ml.Experiment]) *MockExperimentsInterface_ListExperiments_Call { _c.Call.Return(_a0) return _c } -func (_c *MockExperimentsInterface_ListExperiments_Call) RunAndReturn(run func(context.Context, ml.ListExperimentsRequest) *listing.PaginatingIterator[ml.ListExperimentsRequest, *ml.ListExperimentsResponse, ml.Experiment]) *MockExperimentsInterface_ListExperiments_Call { +func (_c *MockExperimentsInterface_ListExperiments_Call) RunAndReturn(run func(context.Context, ml.ListExperimentsRequest) listing.Iterator[ml.Experiment]) *MockExperimentsInterface_ListExperiments_Call { _c.Call.Return(run) return _c } @@ -1515,19 +1515,19 @@ func (_c *MockExperimentsInterface_RestoreRuns_Call) RunAndReturn(run func(conte } // SearchExperiments provides a mock function with given fields: ctx, request -func (_m *MockExperimentsInterface) SearchExperiments(ctx context.Context, request ml.SearchExperiments) *listing.PaginatingIterator[ml.SearchExperiments, *ml.SearchExperimentsResponse, ml.Experiment] { +func (_m *MockExperimentsInterface) SearchExperiments(ctx context.Context, request ml.SearchExperiments) listing.Iterator[ml.Experiment] { ret := _m.Called(ctx, request) if len(ret) == 0 { panic("no return value specified for SearchExperiments") } - var r0 *listing.PaginatingIterator[ml.SearchExperiments, *ml.SearchExperimentsResponse, ml.Experiment] - if rf, ok := ret.Get(0).(func(context.Context, ml.SearchExperiments) *listing.PaginatingIterator[ml.SearchExperiments, *ml.SearchExperimentsResponse, ml.Experiment]); ok { + var r0 listing.Iterator[ml.Experiment] + if rf, ok := ret.Get(0).(func(context.Context, ml.SearchExperiments) listing.Iterator[ml.Experiment]); ok { r0 = rf(ctx, request) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.PaginatingIterator[ml.SearchExperiments, *ml.SearchExperimentsResponse, ml.Experiment]) + r0 = ret.Get(0).(listing.Iterator[ml.Experiment]) } } @@ -1553,12 +1553,12 @@ func (_c *MockExperimentsInterface_SearchExperiments_Call) Run(run func(ctx cont return _c } -func (_c *MockExperimentsInterface_SearchExperiments_Call) Return(_a0 *listing.PaginatingIterator[ml.SearchExperiments, *ml.SearchExperimentsResponse, ml.Experiment]) *MockExperimentsInterface_SearchExperiments_Call { +func (_c *MockExperimentsInterface_SearchExperiments_Call) Return(_a0 listing.Iterator[ml.Experiment]) *MockExperimentsInterface_SearchExperiments_Call { _c.Call.Return(_a0) return _c } -func (_c *MockExperimentsInterface_SearchExperiments_Call) RunAndReturn(run func(context.Context, ml.SearchExperiments) *listing.PaginatingIterator[ml.SearchExperiments, *ml.SearchExperimentsResponse, ml.Experiment]) *MockExperimentsInterface_SearchExperiments_Call { +func (_c *MockExperimentsInterface_SearchExperiments_Call) RunAndReturn(run func(context.Context, ml.SearchExperiments) listing.Iterator[ml.Experiment]) *MockExperimentsInterface_SearchExperiments_Call { _c.Call.Return(run) return _c } @@ -1623,19 +1623,19 @@ func (_c *MockExperimentsInterface_SearchExperimentsAll_Call) RunAndReturn(run f } // SearchRuns provides a mock function with given fields: ctx, request -func (_m *MockExperimentsInterface) SearchRuns(ctx context.Context, request ml.SearchRuns) *listing.PaginatingIterator[ml.SearchRuns, *ml.SearchRunsResponse, ml.Run] { +func (_m *MockExperimentsInterface) SearchRuns(ctx context.Context, request ml.SearchRuns) listing.Iterator[ml.Run] { ret := _m.Called(ctx, request) if len(ret) == 0 { panic("no return value specified for SearchRuns") } - var r0 *listing.PaginatingIterator[ml.SearchRuns, *ml.SearchRunsResponse, ml.Run] - if rf, ok := ret.Get(0).(func(context.Context, ml.SearchRuns) *listing.PaginatingIterator[ml.SearchRuns, *ml.SearchRunsResponse, ml.Run]); ok { + var r0 listing.Iterator[ml.Run] + if rf, ok := ret.Get(0).(func(context.Context, ml.SearchRuns) listing.Iterator[ml.Run]); ok { r0 = rf(ctx, request) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.PaginatingIterator[ml.SearchRuns, *ml.SearchRunsResponse, ml.Run]) + r0 = ret.Get(0).(listing.Iterator[ml.Run]) } } @@ -1661,12 +1661,12 @@ func (_c *MockExperimentsInterface_SearchRuns_Call) Run(run func(ctx context.Con return _c } -func (_c *MockExperimentsInterface_SearchRuns_Call) Return(_a0 *listing.PaginatingIterator[ml.SearchRuns, *ml.SearchRunsResponse, ml.Run]) *MockExperimentsInterface_SearchRuns_Call { +func (_c *MockExperimentsInterface_SearchRuns_Call) Return(_a0 listing.Iterator[ml.Run]) *MockExperimentsInterface_SearchRuns_Call { _c.Call.Return(_a0) return _c } -func (_c *MockExperimentsInterface_SearchRuns_Call) RunAndReturn(run func(context.Context, ml.SearchRuns) *listing.PaginatingIterator[ml.SearchRuns, *ml.SearchRunsResponse, ml.Run]) *MockExperimentsInterface_SearchRuns_Call { +func (_c *MockExperimentsInterface_SearchRuns_Call) RunAndReturn(run func(context.Context, ml.SearchRuns) listing.Iterator[ml.Run]) *MockExperimentsInterface_SearchRuns_Call { _c.Call.Return(run) return _c } diff --git a/experimental/mocks/service/ml/mock_model_registry_interface.go b/experimental/mocks/service/ml/mock_model_registry_interface.go index a1b0aa336..64cd43ed6 100644 --- a/experimental/mocks/service/ml/mock_model_registry_interface.go +++ b/experimental/mocks/service/ml/mock_model_registry_interface.go @@ -708,19 +708,19 @@ func (_c *MockModelRegistryInterface_DeleteWebhook_Call) RunAndReturn(run func(c } // GetLatestVersions provides a mock function with given fields: ctx, request -func (_m *MockModelRegistryInterface) GetLatestVersions(ctx context.Context, request ml.GetLatestVersionsRequest) *listing.PaginatingIterator[ml.GetLatestVersionsRequest, *ml.GetLatestVersionsResponse, ml.ModelVersion] { +func (_m *MockModelRegistryInterface) GetLatestVersions(ctx context.Context, request ml.GetLatestVersionsRequest) listing.Iterator[ml.ModelVersion] { ret := _m.Called(ctx, request) if len(ret) == 0 { panic("no return value specified for GetLatestVersions") } - var r0 *listing.PaginatingIterator[ml.GetLatestVersionsRequest, *ml.GetLatestVersionsResponse, ml.ModelVersion] - if rf, ok := ret.Get(0).(func(context.Context, ml.GetLatestVersionsRequest) *listing.PaginatingIterator[ml.GetLatestVersionsRequest, *ml.GetLatestVersionsResponse, ml.ModelVersion]); ok { + var r0 listing.Iterator[ml.ModelVersion] + if rf, ok := ret.Get(0).(func(context.Context, ml.GetLatestVersionsRequest) listing.Iterator[ml.ModelVersion]); ok { r0 = rf(ctx, request) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.PaginatingIterator[ml.GetLatestVersionsRequest, *ml.GetLatestVersionsResponse, ml.ModelVersion]) + r0 = ret.Get(0).(listing.Iterator[ml.ModelVersion]) } } @@ -746,12 +746,12 @@ func (_c *MockModelRegistryInterface_GetLatestVersions_Call) Run(run func(ctx co return _c } -func (_c *MockModelRegistryInterface_GetLatestVersions_Call) Return(_a0 *listing.PaginatingIterator[ml.GetLatestVersionsRequest, *ml.GetLatestVersionsResponse, ml.ModelVersion]) *MockModelRegistryInterface_GetLatestVersions_Call { +func (_c *MockModelRegistryInterface_GetLatestVersions_Call) Return(_a0 listing.Iterator[ml.ModelVersion]) *MockModelRegistryInterface_GetLatestVersions_Call { _c.Call.Return(_a0) return _c } -func (_c *MockModelRegistryInterface_GetLatestVersions_Call) RunAndReturn(run func(context.Context, ml.GetLatestVersionsRequest) *listing.PaginatingIterator[ml.GetLatestVersionsRequest, *ml.GetLatestVersionsResponse, ml.ModelVersion]) *MockModelRegistryInterface_GetLatestVersions_Call { +func (_c *MockModelRegistryInterface_GetLatestVersions_Call) RunAndReturn(run func(context.Context, ml.GetLatestVersionsRequest) listing.Iterator[ml.ModelVersion]) *MockModelRegistryInterface_GetLatestVersions_Call { _c.Call.Return(run) return _c } @@ -1276,19 +1276,19 @@ func (_c *MockModelRegistryInterface_Impl_Call) RunAndReturn(run func() ml.Model } // ListModels provides a mock function with given fields: ctx, request -func (_m *MockModelRegistryInterface) ListModels(ctx context.Context, request ml.ListModelsRequest) *listing.PaginatingIterator[ml.ListModelsRequest, *ml.ListModelsResponse, ml.Model] { +func (_m *MockModelRegistryInterface) ListModels(ctx context.Context, request ml.ListModelsRequest) listing.Iterator[ml.Model] { ret := _m.Called(ctx, request) if len(ret) == 0 { panic("no return value specified for ListModels") } - var r0 *listing.PaginatingIterator[ml.ListModelsRequest, *ml.ListModelsResponse, ml.Model] - if rf, ok := ret.Get(0).(func(context.Context, ml.ListModelsRequest) *listing.PaginatingIterator[ml.ListModelsRequest, *ml.ListModelsResponse, ml.Model]); ok { + var r0 listing.Iterator[ml.Model] + if rf, ok := ret.Get(0).(func(context.Context, ml.ListModelsRequest) listing.Iterator[ml.Model]); ok { r0 = rf(ctx, request) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.PaginatingIterator[ml.ListModelsRequest, *ml.ListModelsResponse, ml.Model]) + r0 = ret.Get(0).(listing.Iterator[ml.Model]) } } @@ -1314,12 +1314,12 @@ func (_c *MockModelRegistryInterface_ListModels_Call) Run(run func(ctx context.C return _c } -func (_c *MockModelRegistryInterface_ListModels_Call) Return(_a0 *listing.PaginatingIterator[ml.ListModelsRequest, *ml.ListModelsResponse, ml.Model]) *MockModelRegistryInterface_ListModels_Call { +func (_c *MockModelRegistryInterface_ListModels_Call) Return(_a0 listing.Iterator[ml.Model]) *MockModelRegistryInterface_ListModels_Call { _c.Call.Return(_a0) return _c } -func (_c *MockModelRegistryInterface_ListModels_Call) RunAndReturn(run func(context.Context, ml.ListModelsRequest) *listing.PaginatingIterator[ml.ListModelsRequest, *ml.ListModelsResponse, ml.Model]) *MockModelRegistryInterface_ListModels_Call { +func (_c *MockModelRegistryInterface_ListModels_Call) RunAndReturn(run func(context.Context, ml.ListModelsRequest) listing.Iterator[ml.Model]) *MockModelRegistryInterface_ListModels_Call { _c.Call.Return(run) return _c } @@ -1384,19 +1384,19 @@ func (_c *MockModelRegistryInterface_ListModelsAll_Call) RunAndReturn(run func(c } // ListTransitionRequests provides a mock function with given fields: ctx, request -func (_m *MockModelRegistryInterface) ListTransitionRequests(ctx context.Context, request ml.ListTransitionRequestsRequest) *listing.PaginatingIterator[ml.ListTransitionRequestsRequest, *ml.ListTransitionRequestsResponse, ml.Activity] { +func (_m *MockModelRegistryInterface) ListTransitionRequests(ctx context.Context, request ml.ListTransitionRequestsRequest) listing.Iterator[ml.Activity] { ret := _m.Called(ctx, request) if len(ret) == 0 { panic("no return value specified for ListTransitionRequests") } - var r0 *listing.PaginatingIterator[ml.ListTransitionRequestsRequest, *ml.ListTransitionRequestsResponse, ml.Activity] - if rf, ok := ret.Get(0).(func(context.Context, ml.ListTransitionRequestsRequest) *listing.PaginatingIterator[ml.ListTransitionRequestsRequest, *ml.ListTransitionRequestsResponse, ml.Activity]); ok { + var r0 listing.Iterator[ml.Activity] + if rf, ok := ret.Get(0).(func(context.Context, ml.ListTransitionRequestsRequest) listing.Iterator[ml.Activity]); ok { r0 = rf(ctx, request) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.PaginatingIterator[ml.ListTransitionRequestsRequest, *ml.ListTransitionRequestsResponse, ml.Activity]) + r0 = ret.Get(0).(listing.Iterator[ml.Activity]) } } @@ -1422,12 +1422,12 @@ func (_c *MockModelRegistryInterface_ListTransitionRequests_Call) Run(run func(c return _c } -func (_c *MockModelRegistryInterface_ListTransitionRequests_Call) Return(_a0 *listing.PaginatingIterator[ml.ListTransitionRequestsRequest, *ml.ListTransitionRequestsResponse, ml.Activity]) *MockModelRegistryInterface_ListTransitionRequests_Call { +func (_c *MockModelRegistryInterface_ListTransitionRequests_Call) Return(_a0 listing.Iterator[ml.Activity]) *MockModelRegistryInterface_ListTransitionRequests_Call { _c.Call.Return(_a0) return _c } -func (_c *MockModelRegistryInterface_ListTransitionRequests_Call) RunAndReturn(run func(context.Context, ml.ListTransitionRequestsRequest) *listing.PaginatingIterator[ml.ListTransitionRequestsRequest, *ml.ListTransitionRequestsResponse, ml.Activity]) *MockModelRegistryInterface_ListTransitionRequests_Call { +func (_c *MockModelRegistryInterface_ListTransitionRequests_Call) RunAndReturn(run func(context.Context, ml.ListTransitionRequestsRequest) listing.Iterator[ml.Activity]) *MockModelRegistryInterface_ListTransitionRequests_Call { _c.Call.Return(run) return _c } @@ -1492,19 +1492,19 @@ func (_c *MockModelRegistryInterface_ListTransitionRequestsAll_Call) RunAndRetur } // ListWebhooks provides a mock function with given fields: ctx, request -func (_m *MockModelRegistryInterface) ListWebhooks(ctx context.Context, request ml.ListWebhooksRequest) *listing.PaginatingIterator[ml.ListWebhooksRequest, *ml.ListRegistryWebhooks, ml.RegistryWebhook] { +func (_m *MockModelRegistryInterface) ListWebhooks(ctx context.Context, request ml.ListWebhooksRequest) listing.Iterator[ml.RegistryWebhook] { ret := _m.Called(ctx, request) if len(ret) == 0 { panic("no return value specified for ListWebhooks") } - var r0 *listing.PaginatingIterator[ml.ListWebhooksRequest, *ml.ListRegistryWebhooks, ml.RegistryWebhook] - if rf, ok := ret.Get(0).(func(context.Context, ml.ListWebhooksRequest) *listing.PaginatingIterator[ml.ListWebhooksRequest, *ml.ListRegistryWebhooks, ml.RegistryWebhook]); ok { + var r0 listing.Iterator[ml.RegistryWebhook] + if rf, ok := ret.Get(0).(func(context.Context, ml.ListWebhooksRequest) listing.Iterator[ml.RegistryWebhook]); ok { r0 = rf(ctx, request) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.PaginatingIterator[ml.ListWebhooksRequest, *ml.ListRegistryWebhooks, ml.RegistryWebhook]) + r0 = ret.Get(0).(listing.Iterator[ml.RegistryWebhook]) } } @@ -1530,12 +1530,12 @@ func (_c *MockModelRegistryInterface_ListWebhooks_Call) Run(run func(ctx context return _c } -func (_c *MockModelRegistryInterface_ListWebhooks_Call) Return(_a0 *listing.PaginatingIterator[ml.ListWebhooksRequest, *ml.ListRegistryWebhooks, ml.RegistryWebhook]) *MockModelRegistryInterface_ListWebhooks_Call { +func (_c *MockModelRegistryInterface_ListWebhooks_Call) Return(_a0 listing.Iterator[ml.RegistryWebhook]) *MockModelRegistryInterface_ListWebhooks_Call { _c.Call.Return(_a0) return _c } -func (_c *MockModelRegistryInterface_ListWebhooks_Call) RunAndReturn(run func(context.Context, ml.ListWebhooksRequest) *listing.PaginatingIterator[ml.ListWebhooksRequest, *ml.ListRegistryWebhooks, ml.RegistryWebhook]) *MockModelRegistryInterface_ListWebhooks_Call { +func (_c *MockModelRegistryInterface_ListWebhooks_Call) RunAndReturn(run func(context.Context, ml.ListWebhooksRequest) listing.Iterator[ml.RegistryWebhook]) *MockModelRegistryInterface_ListWebhooks_Call { _c.Call.Return(run) return _c } @@ -1718,19 +1718,19 @@ func (_c *MockModelRegistryInterface_RenameModel_Call) RunAndReturn(run func(con } // SearchModelVersions provides a mock function with given fields: ctx, request -func (_m *MockModelRegistryInterface) SearchModelVersions(ctx context.Context, request ml.SearchModelVersionsRequest) *listing.PaginatingIterator[ml.SearchModelVersionsRequest, *ml.SearchModelVersionsResponse, ml.ModelVersion] { +func (_m *MockModelRegistryInterface) SearchModelVersions(ctx context.Context, request ml.SearchModelVersionsRequest) listing.Iterator[ml.ModelVersion] { ret := _m.Called(ctx, request) if len(ret) == 0 { panic("no return value specified for SearchModelVersions") } - var r0 *listing.PaginatingIterator[ml.SearchModelVersionsRequest, *ml.SearchModelVersionsResponse, ml.ModelVersion] - if rf, ok := ret.Get(0).(func(context.Context, ml.SearchModelVersionsRequest) *listing.PaginatingIterator[ml.SearchModelVersionsRequest, *ml.SearchModelVersionsResponse, ml.ModelVersion]); ok { + var r0 listing.Iterator[ml.ModelVersion] + if rf, ok := ret.Get(0).(func(context.Context, ml.SearchModelVersionsRequest) listing.Iterator[ml.ModelVersion]); ok { r0 = rf(ctx, request) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.PaginatingIterator[ml.SearchModelVersionsRequest, *ml.SearchModelVersionsResponse, ml.ModelVersion]) + r0 = ret.Get(0).(listing.Iterator[ml.ModelVersion]) } } @@ -1756,12 +1756,12 @@ func (_c *MockModelRegistryInterface_SearchModelVersions_Call) Run(run func(ctx return _c } -func (_c *MockModelRegistryInterface_SearchModelVersions_Call) Return(_a0 *listing.PaginatingIterator[ml.SearchModelVersionsRequest, *ml.SearchModelVersionsResponse, ml.ModelVersion]) *MockModelRegistryInterface_SearchModelVersions_Call { +func (_c *MockModelRegistryInterface_SearchModelVersions_Call) Return(_a0 listing.Iterator[ml.ModelVersion]) *MockModelRegistryInterface_SearchModelVersions_Call { _c.Call.Return(_a0) return _c } -func (_c *MockModelRegistryInterface_SearchModelVersions_Call) RunAndReturn(run func(context.Context, ml.SearchModelVersionsRequest) *listing.PaginatingIterator[ml.SearchModelVersionsRequest, *ml.SearchModelVersionsResponse, ml.ModelVersion]) *MockModelRegistryInterface_SearchModelVersions_Call { +func (_c *MockModelRegistryInterface_SearchModelVersions_Call) RunAndReturn(run func(context.Context, ml.SearchModelVersionsRequest) listing.Iterator[ml.ModelVersion]) *MockModelRegistryInterface_SearchModelVersions_Call { _c.Call.Return(run) return _c } @@ -1826,19 +1826,19 @@ func (_c *MockModelRegistryInterface_SearchModelVersionsAll_Call) RunAndReturn(r } // SearchModels provides a mock function with given fields: ctx, request -func (_m *MockModelRegistryInterface) SearchModels(ctx context.Context, request ml.SearchModelsRequest) *listing.PaginatingIterator[ml.SearchModelsRequest, *ml.SearchModelsResponse, ml.Model] { +func (_m *MockModelRegistryInterface) SearchModels(ctx context.Context, request ml.SearchModelsRequest) listing.Iterator[ml.Model] { ret := _m.Called(ctx, request) if len(ret) == 0 { panic("no return value specified for SearchModels") } - var r0 *listing.PaginatingIterator[ml.SearchModelsRequest, *ml.SearchModelsResponse, ml.Model] - if rf, ok := ret.Get(0).(func(context.Context, ml.SearchModelsRequest) *listing.PaginatingIterator[ml.SearchModelsRequest, *ml.SearchModelsResponse, ml.Model]); ok { + var r0 listing.Iterator[ml.Model] + if rf, ok := ret.Get(0).(func(context.Context, ml.SearchModelsRequest) listing.Iterator[ml.Model]); ok { r0 = rf(ctx, request) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.PaginatingIterator[ml.SearchModelsRequest, *ml.SearchModelsResponse, ml.Model]) + r0 = ret.Get(0).(listing.Iterator[ml.Model]) } } @@ -1864,12 +1864,12 @@ func (_c *MockModelRegistryInterface_SearchModels_Call) Run(run func(ctx context return _c } -func (_c *MockModelRegistryInterface_SearchModels_Call) Return(_a0 *listing.PaginatingIterator[ml.SearchModelsRequest, *ml.SearchModelsResponse, ml.Model]) *MockModelRegistryInterface_SearchModels_Call { +func (_c *MockModelRegistryInterface_SearchModels_Call) Return(_a0 listing.Iterator[ml.Model]) *MockModelRegistryInterface_SearchModels_Call { _c.Call.Return(_a0) return _c } -func (_c *MockModelRegistryInterface_SearchModels_Call) RunAndReturn(run func(context.Context, ml.SearchModelsRequest) *listing.PaginatingIterator[ml.SearchModelsRequest, *ml.SearchModelsResponse, ml.Model]) *MockModelRegistryInterface_SearchModels_Call { +func (_c *MockModelRegistryInterface_SearchModels_Call) RunAndReturn(run func(context.Context, ml.SearchModelsRequest) listing.Iterator[ml.Model]) *MockModelRegistryInterface_SearchModels_Call { _c.Call.Return(run) return _c } diff --git a/experimental/mocks/service/oauth2/mock_custom_app_integration_interface.go b/experimental/mocks/service/oauth2/mock_custom_app_integration_interface.go index 8bab43f70..b7f1ccc43 100644 --- a/experimental/mocks/service/oauth2/mock_custom_app_integration_interface.go +++ b/experimental/mocks/service/oauth2/mock_custom_app_integration_interface.go @@ -343,19 +343,19 @@ func (_c *MockCustomAppIntegrationInterface_Impl_Call) RunAndReturn(run func() o } // List provides a mock function with given fields: ctx -func (_m *MockCustomAppIntegrationInterface) List(ctx context.Context) *listing.PaginatingIterator[struct{}, *oauth2.GetCustomAppIntegrationsOutput, oauth2.GetCustomAppIntegrationOutput] { +func (_m *MockCustomAppIntegrationInterface) List(ctx context.Context) listing.Iterator[oauth2.GetCustomAppIntegrationOutput] { ret := _m.Called(ctx) if len(ret) == 0 { panic("no return value specified for List") } - var r0 *listing.PaginatingIterator[struct{}, *oauth2.GetCustomAppIntegrationsOutput, oauth2.GetCustomAppIntegrationOutput] - if rf, ok := ret.Get(0).(func(context.Context) *listing.PaginatingIterator[struct{}, *oauth2.GetCustomAppIntegrationsOutput, oauth2.GetCustomAppIntegrationOutput]); ok { + var r0 listing.Iterator[oauth2.GetCustomAppIntegrationOutput] + if rf, ok := ret.Get(0).(func(context.Context) listing.Iterator[oauth2.GetCustomAppIntegrationOutput]); ok { r0 = rf(ctx) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.PaginatingIterator[struct{}, *oauth2.GetCustomAppIntegrationsOutput, oauth2.GetCustomAppIntegrationOutput]) + r0 = ret.Get(0).(listing.Iterator[oauth2.GetCustomAppIntegrationOutput]) } } @@ -380,12 +380,12 @@ func (_c *MockCustomAppIntegrationInterface_List_Call) Run(run func(ctx context. return _c } -func (_c *MockCustomAppIntegrationInterface_List_Call) Return(_a0 *listing.PaginatingIterator[struct{}, *oauth2.GetCustomAppIntegrationsOutput, oauth2.GetCustomAppIntegrationOutput]) *MockCustomAppIntegrationInterface_List_Call { +func (_c *MockCustomAppIntegrationInterface_List_Call) Return(_a0 listing.Iterator[oauth2.GetCustomAppIntegrationOutput]) *MockCustomAppIntegrationInterface_List_Call { _c.Call.Return(_a0) return _c } -func (_c *MockCustomAppIntegrationInterface_List_Call) RunAndReturn(run func(context.Context) *listing.PaginatingIterator[struct{}, *oauth2.GetCustomAppIntegrationsOutput, oauth2.GetCustomAppIntegrationOutput]) *MockCustomAppIntegrationInterface_List_Call { +func (_c *MockCustomAppIntegrationInterface_List_Call) RunAndReturn(run func(context.Context) listing.Iterator[oauth2.GetCustomAppIntegrationOutput]) *MockCustomAppIntegrationInterface_List_Call { _c.Call.Return(run) return _c } diff --git a/experimental/mocks/service/oauth2/mock_o_auth_published_apps_interface.go b/experimental/mocks/service/oauth2/mock_o_auth_published_apps_interface.go index 14eaf3c86..301d134ee 100644 --- a/experimental/mocks/service/oauth2/mock_o_auth_published_apps_interface.go +++ b/experimental/mocks/service/oauth2/mock_o_auth_published_apps_interface.go @@ -72,19 +72,19 @@ func (_c *MockOAuthPublishedAppsInterface_Impl_Call) RunAndReturn(run func() oau } // List provides a mock function with given fields: ctx, request -func (_m *MockOAuthPublishedAppsInterface) List(ctx context.Context, request oauth2.ListOAuthPublishedAppsRequest) *listing.PaginatingIterator[oauth2.ListOAuthPublishedAppsRequest, *oauth2.GetPublishedAppsOutput, oauth2.PublishedAppOutput] { +func (_m *MockOAuthPublishedAppsInterface) List(ctx context.Context, request oauth2.ListOAuthPublishedAppsRequest) listing.Iterator[oauth2.PublishedAppOutput] { ret := _m.Called(ctx, request) if len(ret) == 0 { panic("no return value specified for List") } - var r0 *listing.PaginatingIterator[oauth2.ListOAuthPublishedAppsRequest, *oauth2.GetPublishedAppsOutput, oauth2.PublishedAppOutput] - if rf, ok := ret.Get(0).(func(context.Context, oauth2.ListOAuthPublishedAppsRequest) *listing.PaginatingIterator[oauth2.ListOAuthPublishedAppsRequest, *oauth2.GetPublishedAppsOutput, oauth2.PublishedAppOutput]); ok { + var r0 listing.Iterator[oauth2.PublishedAppOutput] + if rf, ok := ret.Get(0).(func(context.Context, oauth2.ListOAuthPublishedAppsRequest) listing.Iterator[oauth2.PublishedAppOutput]); ok { r0 = rf(ctx, request) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.PaginatingIterator[oauth2.ListOAuthPublishedAppsRequest, *oauth2.GetPublishedAppsOutput, oauth2.PublishedAppOutput]) + r0 = ret.Get(0).(listing.Iterator[oauth2.PublishedAppOutput]) } } @@ -110,12 +110,12 @@ func (_c *MockOAuthPublishedAppsInterface_List_Call) Run(run func(ctx context.Co return _c } -func (_c *MockOAuthPublishedAppsInterface_List_Call) Return(_a0 *listing.PaginatingIterator[oauth2.ListOAuthPublishedAppsRequest, *oauth2.GetPublishedAppsOutput, oauth2.PublishedAppOutput]) *MockOAuthPublishedAppsInterface_List_Call { +func (_c *MockOAuthPublishedAppsInterface_List_Call) Return(_a0 listing.Iterator[oauth2.PublishedAppOutput]) *MockOAuthPublishedAppsInterface_List_Call { _c.Call.Return(_a0) return _c } -func (_c *MockOAuthPublishedAppsInterface_List_Call) RunAndReturn(run func(context.Context, oauth2.ListOAuthPublishedAppsRequest) *listing.PaginatingIterator[oauth2.ListOAuthPublishedAppsRequest, *oauth2.GetPublishedAppsOutput, oauth2.PublishedAppOutput]) *MockOAuthPublishedAppsInterface_List_Call { +func (_c *MockOAuthPublishedAppsInterface_List_Call) RunAndReturn(run func(context.Context, oauth2.ListOAuthPublishedAppsRequest) listing.Iterator[oauth2.PublishedAppOutput]) *MockOAuthPublishedAppsInterface_List_Call { _c.Call.Return(run) return _c } diff --git a/experimental/mocks/service/oauth2/mock_published_app_integration_interface.go b/experimental/mocks/service/oauth2/mock_published_app_integration_interface.go index 2e62fe116..4e3c496f9 100644 --- a/experimental/mocks/service/oauth2/mock_published_app_integration_interface.go +++ b/experimental/mocks/service/oauth2/mock_published_app_integration_interface.go @@ -343,19 +343,19 @@ func (_c *MockPublishedAppIntegrationInterface_Impl_Call) RunAndReturn(run func( } // List provides a mock function with given fields: ctx -func (_m *MockPublishedAppIntegrationInterface) List(ctx context.Context) *listing.PaginatingIterator[struct{}, *oauth2.GetPublishedAppIntegrationsOutput, oauth2.GetPublishedAppIntegrationOutput] { +func (_m *MockPublishedAppIntegrationInterface) List(ctx context.Context) listing.Iterator[oauth2.GetPublishedAppIntegrationOutput] { ret := _m.Called(ctx) if len(ret) == 0 { panic("no return value specified for List") } - var r0 *listing.PaginatingIterator[struct{}, *oauth2.GetPublishedAppIntegrationsOutput, oauth2.GetPublishedAppIntegrationOutput] - if rf, ok := ret.Get(0).(func(context.Context) *listing.PaginatingIterator[struct{}, *oauth2.GetPublishedAppIntegrationsOutput, oauth2.GetPublishedAppIntegrationOutput]); ok { + var r0 listing.Iterator[oauth2.GetPublishedAppIntegrationOutput] + if rf, ok := ret.Get(0).(func(context.Context) listing.Iterator[oauth2.GetPublishedAppIntegrationOutput]); ok { r0 = rf(ctx) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.PaginatingIterator[struct{}, *oauth2.GetPublishedAppIntegrationsOutput, oauth2.GetPublishedAppIntegrationOutput]) + r0 = ret.Get(0).(listing.Iterator[oauth2.GetPublishedAppIntegrationOutput]) } } @@ -380,12 +380,12 @@ func (_c *MockPublishedAppIntegrationInterface_List_Call) Run(run func(ctx conte return _c } -func (_c *MockPublishedAppIntegrationInterface_List_Call) Return(_a0 *listing.PaginatingIterator[struct{}, *oauth2.GetPublishedAppIntegrationsOutput, oauth2.GetPublishedAppIntegrationOutput]) *MockPublishedAppIntegrationInterface_List_Call { +func (_c *MockPublishedAppIntegrationInterface_List_Call) Return(_a0 listing.Iterator[oauth2.GetPublishedAppIntegrationOutput]) *MockPublishedAppIntegrationInterface_List_Call { _c.Call.Return(_a0) return _c } -func (_c *MockPublishedAppIntegrationInterface_List_Call) RunAndReturn(run func(context.Context) *listing.PaginatingIterator[struct{}, *oauth2.GetPublishedAppIntegrationsOutput, oauth2.GetPublishedAppIntegrationOutput]) *MockPublishedAppIntegrationInterface_List_Call { +func (_c *MockPublishedAppIntegrationInterface_List_Call) RunAndReturn(run func(context.Context) listing.Iterator[oauth2.GetPublishedAppIntegrationOutput]) *MockPublishedAppIntegrationInterface_List_Call { _c.Call.Return(run) return _c } diff --git a/experimental/mocks/service/oauth2/mock_service_principal_secrets_interface.go b/experimental/mocks/service/oauth2/mock_service_principal_secrets_interface.go index 6abf656a7..316340b1b 100644 --- a/experimental/mocks/service/oauth2/mock_service_principal_secrets_interface.go +++ b/experimental/mocks/service/oauth2/mock_service_principal_secrets_interface.go @@ -226,19 +226,19 @@ func (_c *MockServicePrincipalSecretsInterface_Impl_Call) RunAndReturn(run func( } // List provides a mock function with given fields: ctx, request -func (_m *MockServicePrincipalSecretsInterface) List(ctx context.Context, request oauth2.ListServicePrincipalSecretsRequest) *listing.PaginatingIterator[oauth2.ListServicePrincipalSecretsRequest, *oauth2.ListServicePrincipalSecretsResponse, oauth2.SecretInfo] { +func (_m *MockServicePrincipalSecretsInterface) List(ctx context.Context, request oauth2.ListServicePrincipalSecretsRequest) listing.Iterator[oauth2.SecretInfo] { ret := _m.Called(ctx, request) if len(ret) == 0 { panic("no return value specified for List") } - var r0 *listing.PaginatingIterator[oauth2.ListServicePrincipalSecretsRequest, *oauth2.ListServicePrincipalSecretsResponse, oauth2.SecretInfo] - if rf, ok := ret.Get(0).(func(context.Context, oauth2.ListServicePrincipalSecretsRequest) *listing.PaginatingIterator[oauth2.ListServicePrincipalSecretsRequest, *oauth2.ListServicePrincipalSecretsResponse, oauth2.SecretInfo]); ok { + var r0 listing.Iterator[oauth2.SecretInfo] + if rf, ok := ret.Get(0).(func(context.Context, oauth2.ListServicePrincipalSecretsRequest) listing.Iterator[oauth2.SecretInfo]); ok { r0 = rf(ctx, request) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.PaginatingIterator[oauth2.ListServicePrincipalSecretsRequest, *oauth2.ListServicePrincipalSecretsResponse, oauth2.SecretInfo]) + r0 = ret.Get(0).(listing.Iterator[oauth2.SecretInfo]) } } @@ -264,12 +264,12 @@ func (_c *MockServicePrincipalSecretsInterface_List_Call) Run(run func(ctx conte return _c } -func (_c *MockServicePrincipalSecretsInterface_List_Call) Return(_a0 *listing.PaginatingIterator[oauth2.ListServicePrincipalSecretsRequest, *oauth2.ListServicePrincipalSecretsResponse, oauth2.SecretInfo]) *MockServicePrincipalSecretsInterface_List_Call { +func (_c *MockServicePrincipalSecretsInterface_List_Call) Return(_a0 listing.Iterator[oauth2.SecretInfo]) *MockServicePrincipalSecretsInterface_List_Call { _c.Call.Return(_a0) return _c } -func (_c *MockServicePrincipalSecretsInterface_List_Call) RunAndReturn(run func(context.Context, oauth2.ListServicePrincipalSecretsRequest) *listing.PaginatingIterator[oauth2.ListServicePrincipalSecretsRequest, *oauth2.ListServicePrincipalSecretsResponse, oauth2.SecretInfo]) *MockServicePrincipalSecretsInterface_List_Call { +func (_c *MockServicePrincipalSecretsInterface_List_Call) RunAndReturn(run func(context.Context, oauth2.ListServicePrincipalSecretsRequest) listing.Iterator[oauth2.SecretInfo]) *MockServicePrincipalSecretsInterface_List_Call { _c.Call.Return(run) return _c } diff --git a/experimental/mocks/service/pipelines/mock_pipelines_interface.go b/experimental/mocks/service/pipelines/mock_pipelines_interface.go index c96aa26c6..e3b4fa8a1 100644 --- a/experimental/mocks/service/pipelines/mock_pipelines_interface.go +++ b/experimental/mocks/service/pipelines/mock_pipelines_interface.go @@ -761,19 +761,19 @@ func (_c *MockPipelinesInterface_Impl_Call) RunAndReturn(run func() pipelines.Pi } // ListPipelineEvents provides a mock function with given fields: ctx, request -func (_m *MockPipelinesInterface) ListPipelineEvents(ctx context.Context, request pipelines.ListPipelineEventsRequest) *listing.PaginatingIterator[pipelines.ListPipelineEventsRequest, *pipelines.ListPipelineEventsResponse, pipelines.PipelineEvent] { +func (_m *MockPipelinesInterface) ListPipelineEvents(ctx context.Context, request pipelines.ListPipelineEventsRequest) listing.Iterator[pipelines.PipelineEvent] { ret := _m.Called(ctx, request) if len(ret) == 0 { panic("no return value specified for ListPipelineEvents") } - var r0 *listing.PaginatingIterator[pipelines.ListPipelineEventsRequest, *pipelines.ListPipelineEventsResponse, pipelines.PipelineEvent] - if rf, ok := ret.Get(0).(func(context.Context, pipelines.ListPipelineEventsRequest) *listing.PaginatingIterator[pipelines.ListPipelineEventsRequest, *pipelines.ListPipelineEventsResponse, pipelines.PipelineEvent]); ok { + var r0 listing.Iterator[pipelines.PipelineEvent] + if rf, ok := ret.Get(0).(func(context.Context, pipelines.ListPipelineEventsRequest) listing.Iterator[pipelines.PipelineEvent]); ok { r0 = rf(ctx, request) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.PaginatingIterator[pipelines.ListPipelineEventsRequest, *pipelines.ListPipelineEventsResponse, pipelines.PipelineEvent]) + r0 = ret.Get(0).(listing.Iterator[pipelines.PipelineEvent]) } } @@ -799,12 +799,12 @@ func (_c *MockPipelinesInterface_ListPipelineEvents_Call) Run(run func(ctx conte return _c } -func (_c *MockPipelinesInterface_ListPipelineEvents_Call) Return(_a0 *listing.PaginatingIterator[pipelines.ListPipelineEventsRequest, *pipelines.ListPipelineEventsResponse, pipelines.PipelineEvent]) *MockPipelinesInterface_ListPipelineEvents_Call { +func (_c *MockPipelinesInterface_ListPipelineEvents_Call) Return(_a0 listing.Iterator[pipelines.PipelineEvent]) *MockPipelinesInterface_ListPipelineEvents_Call { _c.Call.Return(_a0) return _c } -func (_c *MockPipelinesInterface_ListPipelineEvents_Call) RunAndReturn(run func(context.Context, pipelines.ListPipelineEventsRequest) *listing.PaginatingIterator[pipelines.ListPipelineEventsRequest, *pipelines.ListPipelineEventsResponse, pipelines.PipelineEvent]) *MockPipelinesInterface_ListPipelineEvents_Call { +func (_c *MockPipelinesInterface_ListPipelineEvents_Call) RunAndReturn(run func(context.Context, pipelines.ListPipelineEventsRequest) listing.Iterator[pipelines.PipelineEvent]) *MockPipelinesInterface_ListPipelineEvents_Call { _c.Call.Return(run) return _c } @@ -928,19 +928,19 @@ func (_c *MockPipelinesInterface_ListPipelineEventsByPipelineId_Call) RunAndRetu } // ListPipelines provides a mock function with given fields: ctx, request -func (_m *MockPipelinesInterface) ListPipelines(ctx context.Context, request pipelines.ListPipelinesRequest) *listing.PaginatingIterator[pipelines.ListPipelinesRequest, *pipelines.ListPipelinesResponse, pipelines.PipelineStateInfo] { +func (_m *MockPipelinesInterface) ListPipelines(ctx context.Context, request pipelines.ListPipelinesRequest) listing.Iterator[pipelines.PipelineStateInfo] { ret := _m.Called(ctx, request) if len(ret) == 0 { panic("no return value specified for ListPipelines") } - var r0 *listing.PaginatingIterator[pipelines.ListPipelinesRequest, *pipelines.ListPipelinesResponse, pipelines.PipelineStateInfo] - if rf, ok := ret.Get(0).(func(context.Context, pipelines.ListPipelinesRequest) *listing.PaginatingIterator[pipelines.ListPipelinesRequest, *pipelines.ListPipelinesResponse, pipelines.PipelineStateInfo]); ok { + var r0 listing.Iterator[pipelines.PipelineStateInfo] + if rf, ok := ret.Get(0).(func(context.Context, pipelines.ListPipelinesRequest) listing.Iterator[pipelines.PipelineStateInfo]); ok { r0 = rf(ctx, request) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.PaginatingIterator[pipelines.ListPipelinesRequest, *pipelines.ListPipelinesResponse, pipelines.PipelineStateInfo]) + r0 = ret.Get(0).(listing.Iterator[pipelines.PipelineStateInfo]) } } @@ -966,12 +966,12 @@ func (_c *MockPipelinesInterface_ListPipelines_Call) Run(run func(ctx context.Co return _c } -func (_c *MockPipelinesInterface_ListPipelines_Call) Return(_a0 *listing.PaginatingIterator[pipelines.ListPipelinesRequest, *pipelines.ListPipelinesResponse, pipelines.PipelineStateInfo]) *MockPipelinesInterface_ListPipelines_Call { +func (_c *MockPipelinesInterface_ListPipelines_Call) Return(_a0 listing.Iterator[pipelines.PipelineStateInfo]) *MockPipelinesInterface_ListPipelines_Call { _c.Call.Return(_a0) return _c } -func (_c *MockPipelinesInterface_ListPipelines_Call) RunAndReturn(run func(context.Context, pipelines.ListPipelinesRequest) *listing.PaginatingIterator[pipelines.ListPipelinesRequest, *pipelines.ListPipelinesResponse, pipelines.PipelineStateInfo]) *MockPipelinesInterface_ListPipelines_Call { +func (_c *MockPipelinesInterface_ListPipelines_Call) RunAndReturn(run func(context.Context, pipelines.ListPipelinesRequest) listing.Iterator[pipelines.PipelineStateInfo]) *MockPipelinesInterface_ListPipelines_Call { _c.Call.Return(run) return _c } @@ -1213,23 +1213,23 @@ func (_c *MockPipelinesInterface_PipelineStateInfoNameToPipelineIdMap_Call) RunA } // Reset provides a mock function with given fields: ctx, resetRequest -func (_m *MockPipelinesInterface) Reset(ctx context.Context, resetRequest pipelines.ResetRequest) (*pipelines.WaitGetPipelineRunning[interface{}], error) { +func (_m *MockPipelinesInterface) Reset(ctx context.Context, resetRequest pipelines.ResetRequest) (*pipelines.WaitGetPipelineRunning[struct{}], error) { ret := _m.Called(ctx, resetRequest) if len(ret) == 0 { panic("no return value specified for Reset") } - var r0 *pipelines.WaitGetPipelineRunning[interface{}] + var r0 *pipelines.WaitGetPipelineRunning[struct{}] var r1 error - if rf, ok := ret.Get(0).(func(context.Context, pipelines.ResetRequest) (*pipelines.WaitGetPipelineRunning[interface{}], error)); ok { + if rf, ok := ret.Get(0).(func(context.Context, pipelines.ResetRequest) (*pipelines.WaitGetPipelineRunning[struct{}], error)); ok { return rf(ctx, resetRequest) } - if rf, ok := ret.Get(0).(func(context.Context, pipelines.ResetRequest) *pipelines.WaitGetPipelineRunning[interface{}]); ok { + if rf, ok := ret.Get(0).(func(context.Context, pipelines.ResetRequest) *pipelines.WaitGetPipelineRunning[struct{}]); ok { r0 = rf(ctx, resetRequest) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*pipelines.WaitGetPipelineRunning[interface{}]) + r0 = ret.Get(0).(*pipelines.WaitGetPipelineRunning[struct{}]) } } @@ -1261,12 +1261,12 @@ func (_c *MockPipelinesInterface_Reset_Call) Run(run func(ctx context.Context, r return _c } -func (_c *MockPipelinesInterface_Reset_Call) Return(_a0 *pipelines.WaitGetPipelineRunning[interface{}], _a1 error) *MockPipelinesInterface_Reset_Call { +func (_c *MockPipelinesInterface_Reset_Call) Return(_a0 *pipelines.WaitGetPipelineRunning[struct{}], _a1 error) *MockPipelinesInterface_Reset_Call { _c.Call.Return(_a0, _a1) return _c } -func (_c *MockPipelinesInterface_Reset_Call) RunAndReturn(run func(context.Context, pipelines.ResetRequest) (*pipelines.WaitGetPipelineRunning[interface{}], error)) *MockPipelinesInterface_Reset_Call { +func (_c *MockPipelinesInterface_Reset_Call) RunAndReturn(run func(context.Context, pipelines.ResetRequest) (*pipelines.WaitGetPipelineRunning[struct{}], error)) *MockPipelinesInterface_Reset_Call { _c.Call.Return(run) return _c } @@ -1464,23 +1464,23 @@ func (_c *MockPipelinesInterface_StartUpdate_Call) RunAndReturn(run func(context } // Stop provides a mock function with given fields: ctx, stopRequest -func (_m *MockPipelinesInterface) Stop(ctx context.Context, stopRequest pipelines.StopRequest) (*pipelines.WaitGetPipelineIdle[interface{}], error) { +func (_m *MockPipelinesInterface) Stop(ctx context.Context, stopRequest pipelines.StopRequest) (*pipelines.WaitGetPipelineIdle[struct{}], error) { ret := _m.Called(ctx, stopRequest) if len(ret) == 0 { panic("no return value specified for Stop") } - var r0 *pipelines.WaitGetPipelineIdle[interface{}] + var r0 *pipelines.WaitGetPipelineIdle[struct{}] var r1 error - if rf, ok := ret.Get(0).(func(context.Context, pipelines.StopRequest) (*pipelines.WaitGetPipelineIdle[interface{}], error)); ok { + if rf, ok := ret.Get(0).(func(context.Context, pipelines.StopRequest) (*pipelines.WaitGetPipelineIdle[struct{}], error)); ok { return rf(ctx, stopRequest) } - if rf, ok := ret.Get(0).(func(context.Context, pipelines.StopRequest) *pipelines.WaitGetPipelineIdle[interface{}]); ok { + if rf, ok := ret.Get(0).(func(context.Context, pipelines.StopRequest) *pipelines.WaitGetPipelineIdle[struct{}]); ok { r0 = rf(ctx, stopRequest) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*pipelines.WaitGetPipelineIdle[interface{}]) + r0 = ret.Get(0).(*pipelines.WaitGetPipelineIdle[struct{}]) } } @@ -1512,12 +1512,12 @@ func (_c *MockPipelinesInterface_Stop_Call) Run(run func(ctx context.Context, st return _c } -func (_c *MockPipelinesInterface_Stop_Call) Return(_a0 *pipelines.WaitGetPipelineIdle[interface{}], _a1 error) *MockPipelinesInterface_Stop_Call { +func (_c *MockPipelinesInterface_Stop_Call) Return(_a0 *pipelines.WaitGetPipelineIdle[struct{}], _a1 error) *MockPipelinesInterface_Stop_Call { _c.Call.Return(_a0, _a1) return _c } -func (_c *MockPipelinesInterface_Stop_Call) RunAndReturn(run func(context.Context, pipelines.StopRequest) (*pipelines.WaitGetPipelineIdle[interface{}], error)) *MockPipelinesInterface_Stop_Call { +func (_c *MockPipelinesInterface_Stop_Call) RunAndReturn(run func(context.Context, pipelines.StopRequest) (*pipelines.WaitGetPipelineIdle[struct{}], error)) *MockPipelinesInterface_Stop_Call { _c.Call.Return(run) return _c } diff --git a/experimental/mocks/service/provisioning/mock_workspaces_interface.go b/experimental/mocks/service/provisioning/mock_workspaces_interface.go index 907702267..c6ba22f19 100644 --- a/experimental/mocks/service/provisioning/mock_workspaces_interface.go +++ b/experimental/mocks/service/provisioning/mock_workspaces_interface.go @@ -536,23 +536,23 @@ func (_c *MockWorkspacesInterface_List_Call) RunAndReturn(run func(context.Conte } // Update provides a mock function with given fields: ctx, updateWorkspaceRequest -func (_m *MockWorkspacesInterface) Update(ctx context.Context, updateWorkspaceRequest provisioning.UpdateWorkspaceRequest) (*provisioning.WaitGetWorkspaceRunning[interface{}], error) { +func (_m *MockWorkspacesInterface) Update(ctx context.Context, updateWorkspaceRequest provisioning.UpdateWorkspaceRequest) (*provisioning.WaitGetWorkspaceRunning[struct{}], error) { ret := _m.Called(ctx, updateWorkspaceRequest) if len(ret) == 0 { panic("no return value specified for Update") } - var r0 *provisioning.WaitGetWorkspaceRunning[interface{}] + var r0 *provisioning.WaitGetWorkspaceRunning[struct{}] var r1 error - if rf, ok := ret.Get(0).(func(context.Context, provisioning.UpdateWorkspaceRequest) (*provisioning.WaitGetWorkspaceRunning[interface{}], error)); ok { + if rf, ok := ret.Get(0).(func(context.Context, provisioning.UpdateWorkspaceRequest) (*provisioning.WaitGetWorkspaceRunning[struct{}], error)); ok { return rf(ctx, updateWorkspaceRequest) } - if rf, ok := ret.Get(0).(func(context.Context, provisioning.UpdateWorkspaceRequest) *provisioning.WaitGetWorkspaceRunning[interface{}]); ok { + if rf, ok := ret.Get(0).(func(context.Context, provisioning.UpdateWorkspaceRequest) *provisioning.WaitGetWorkspaceRunning[struct{}]); ok { r0 = rf(ctx, updateWorkspaceRequest) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*provisioning.WaitGetWorkspaceRunning[interface{}]) + r0 = ret.Get(0).(*provisioning.WaitGetWorkspaceRunning[struct{}]) } } @@ -584,12 +584,12 @@ func (_c *MockWorkspacesInterface_Update_Call) Run(run func(ctx context.Context, return _c } -func (_c *MockWorkspacesInterface_Update_Call) Return(_a0 *provisioning.WaitGetWorkspaceRunning[interface{}], _a1 error) *MockWorkspacesInterface_Update_Call { +func (_c *MockWorkspacesInterface_Update_Call) Return(_a0 *provisioning.WaitGetWorkspaceRunning[struct{}], _a1 error) *MockWorkspacesInterface_Update_Call { _c.Call.Return(_a0, _a1) return _c } -func (_c *MockWorkspacesInterface_Update_Call) RunAndReturn(run func(context.Context, provisioning.UpdateWorkspaceRequest) (*provisioning.WaitGetWorkspaceRunning[interface{}], error)) *MockWorkspacesInterface_Update_Call { +func (_c *MockWorkspacesInterface_Update_Call) RunAndReturn(run func(context.Context, provisioning.UpdateWorkspaceRequest) (*provisioning.WaitGetWorkspaceRunning[struct{}], error)) *MockWorkspacesInterface_Update_Call { _c.Call.Return(run) return _c } diff --git a/experimental/mocks/service/serving/mock_serving_endpoints_interface.go b/experimental/mocks/service/serving/mock_serving_endpoints_interface.go index 0a2bb36e0..491d3af29 100644 --- a/experimental/mocks/service/serving/mock_serving_endpoints_interface.go +++ b/experimental/mocks/service/serving/mock_serving_endpoints_interface.go @@ -870,19 +870,19 @@ func (_c *MockServingEndpointsInterface_Impl_Call) RunAndReturn(run func() servi } // List provides a mock function with given fields: ctx -func (_m *MockServingEndpointsInterface) List(ctx context.Context) *listing.PaginatingIterator[struct{}, *serving.ListEndpointsResponse, serving.ServingEndpoint] { +func (_m *MockServingEndpointsInterface) List(ctx context.Context) listing.Iterator[serving.ServingEndpoint] { ret := _m.Called(ctx) if len(ret) == 0 { panic("no return value specified for List") } - var r0 *listing.PaginatingIterator[struct{}, *serving.ListEndpointsResponse, serving.ServingEndpoint] - if rf, ok := ret.Get(0).(func(context.Context) *listing.PaginatingIterator[struct{}, *serving.ListEndpointsResponse, serving.ServingEndpoint]); ok { + var r0 listing.Iterator[serving.ServingEndpoint] + if rf, ok := ret.Get(0).(func(context.Context) listing.Iterator[serving.ServingEndpoint]); ok { r0 = rf(ctx) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.PaginatingIterator[struct{}, *serving.ListEndpointsResponse, serving.ServingEndpoint]) + r0 = ret.Get(0).(listing.Iterator[serving.ServingEndpoint]) } } @@ -907,12 +907,12 @@ func (_c *MockServingEndpointsInterface_List_Call) Run(run func(ctx context.Cont return _c } -func (_c *MockServingEndpointsInterface_List_Call) Return(_a0 *listing.PaginatingIterator[struct{}, *serving.ListEndpointsResponse, serving.ServingEndpoint]) *MockServingEndpointsInterface_List_Call { +func (_c *MockServingEndpointsInterface_List_Call) Return(_a0 listing.Iterator[serving.ServingEndpoint]) *MockServingEndpointsInterface_List_Call { _c.Call.Return(_a0) return _c } -func (_c *MockServingEndpointsInterface_List_Call) RunAndReturn(run func(context.Context) *listing.PaginatingIterator[struct{}, *serving.ListEndpointsResponse, serving.ServingEndpoint]) *MockServingEndpointsInterface_List_Call { +func (_c *MockServingEndpointsInterface_List_Call) RunAndReturn(run func(context.Context) listing.Iterator[serving.ServingEndpoint]) *MockServingEndpointsInterface_List_Call { _c.Call.Return(run) return _c } diff --git a/experimental/mocks/service/settings/mock_account_ip_access_lists_interface.go b/experimental/mocks/service/settings/mock_account_ip_access_lists_interface.go index c958b82d8..6fd032a98 100644 --- a/experimental/mocks/service/settings/mock_account_ip_access_lists_interface.go +++ b/experimental/mocks/service/settings/mock_account_ip_access_lists_interface.go @@ -460,19 +460,19 @@ func (_c *MockAccountIpAccessListsInterface_IpAccessListInfoLabelToListIdMap_Cal } // List provides a mock function with given fields: ctx -func (_m *MockAccountIpAccessListsInterface) List(ctx context.Context) *listing.PaginatingIterator[struct{}, *settings.GetIpAccessListsResponse, settings.IpAccessListInfo] { +func (_m *MockAccountIpAccessListsInterface) List(ctx context.Context) listing.Iterator[settings.IpAccessListInfo] { ret := _m.Called(ctx) if len(ret) == 0 { panic("no return value specified for List") } - var r0 *listing.PaginatingIterator[struct{}, *settings.GetIpAccessListsResponse, settings.IpAccessListInfo] - if rf, ok := ret.Get(0).(func(context.Context) *listing.PaginatingIterator[struct{}, *settings.GetIpAccessListsResponse, settings.IpAccessListInfo]); ok { + var r0 listing.Iterator[settings.IpAccessListInfo] + if rf, ok := ret.Get(0).(func(context.Context) listing.Iterator[settings.IpAccessListInfo]); ok { r0 = rf(ctx) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.PaginatingIterator[struct{}, *settings.GetIpAccessListsResponse, settings.IpAccessListInfo]) + r0 = ret.Get(0).(listing.Iterator[settings.IpAccessListInfo]) } } @@ -497,12 +497,12 @@ func (_c *MockAccountIpAccessListsInterface_List_Call) Run(run func(ctx context. return _c } -func (_c *MockAccountIpAccessListsInterface_List_Call) Return(_a0 *listing.PaginatingIterator[struct{}, *settings.GetIpAccessListsResponse, settings.IpAccessListInfo]) *MockAccountIpAccessListsInterface_List_Call { +func (_c *MockAccountIpAccessListsInterface_List_Call) Return(_a0 listing.Iterator[settings.IpAccessListInfo]) *MockAccountIpAccessListsInterface_List_Call { _c.Call.Return(_a0) return _c } -func (_c *MockAccountIpAccessListsInterface_List_Call) RunAndReturn(run func(context.Context) *listing.PaginatingIterator[struct{}, *settings.GetIpAccessListsResponse, settings.IpAccessListInfo]) *MockAccountIpAccessListsInterface_List_Call { +func (_c *MockAccountIpAccessListsInterface_List_Call) RunAndReturn(run func(context.Context) listing.Iterator[settings.IpAccessListInfo]) *MockAccountIpAccessListsInterface_List_Call { _c.Call.Return(run) return _c } diff --git a/experimental/mocks/service/settings/mock_ip_access_lists_interface.go b/experimental/mocks/service/settings/mock_ip_access_lists_interface.go index ccdef4b34..80173dbfc 100644 --- a/experimental/mocks/service/settings/mock_ip_access_lists_interface.go +++ b/experimental/mocks/service/settings/mock_ip_access_lists_interface.go @@ -460,19 +460,19 @@ func (_c *MockIpAccessListsInterface_IpAccessListInfoLabelToListIdMap_Call) RunA } // List provides a mock function with given fields: ctx -func (_m *MockIpAccessListsInterface) List(ctx context.Context) *listing.PaginatingIterator[struct{}, *settings.ListIpAccessListResponse, settings.IpAccessListInfo] { +func (_m *MockIpAccessListsInterface) List(ctx context.Context) listing.Iterator[settings.IpAccessListInfo] { ret := _m.Called(ctx) if len(ret) == 0 { panic("no return value specified for List") } - var r0 *listing.PaginatingIterator[struct{}, *settings.ListIpAccessListResponse, settings.IpAccessListInfo] - if rf, ok := ret.Get(0).(func(context.Context) *listing.PaginatingIterator[struct{}, *settings.ListIpAccessListResponse, settings.IpAccessListInfo]); ok { + var r0 listing.Iterator[settings.IpAccessListInfo] + if rf, ok := ret.Get(0).(func(context.Context) listing.Iterator[settings.IpAccessListInfo]); ok { r0 = rf(ctx) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.PaginatingIterator[struct{}, *settings.ListIpAccessListResponse, settings.IpAccessListInfo]) + r0 = ret.Get(0).(listing.Iterator[settings.IpAccessListInfo]) } } @@ -497,12 +497,12 @@ func (_c *MockIpAccessListsInterface_List_Call) Run(run func(ctx context.Context return _c } -func (_c *MockIpAccessListsInterface_List_Call) Return(_a0 *listing.PaginatingIterator[struct{}, *settings.ListIpAccessListResponse, settings.IpAccessListInfo]) *MockIpAccessListsInterface_List_Call { +func (_c *MockIpAccessListsInterface_List_Call) Return(_a0 listing.Iterator[settings.IpAccessListInfo]) *MockIpAccessListsInterface_List_Call { _c.Call.Return(_a0) return _c } -func (_c *MockIpAccessListsInterface_List_Call) RunAndReturn(run func(context.Context) *listing.PaginatingIterator[struct{}, *settings.ListIpAccessListResponse, settings.IpAccessListInfo]) *MockIpAccessListsInterface_List_Call { +func (_c *MockIpAccessListsInterface_List_Call) RunAndReturn(run func(context.Context) listing.Iterator[settings.IpAccessListInfo]) *MockIpAccessListsInterface_List_Call { _c.Call.Return(run) return _c } diff --git a/experimental/mocks/service/settings/mock_network_connectivity_interface.go b/experimental/mocks/service/settings/mock_network_connectivity_interface.go index 5607fdde4..925a5dfd4 100644 --- a/experimental/mocks/service/settings/mock_network_connectivity_interface.go +++ b/experimental/mocks/service/settings/mock_network_connectivity_interface.go @@ -640,19 +640,19 @@ func (_c *MockNetworkConnectivityInterface_Impl_Call) RunAndReturn(run func() se } // ListNetworkConnectivityConfigurations provides a mock function with given fields: ctx, request -func (_m *MockNetworkConnectivityInterface) ListNetworkConnectivityConfigurations(ctx context.Context, request settings.ListNetworkConnectivityConfigurationsRequest) *listing.PaginatingIterator[settings.ListNetworkConnectivityConfigurationsRequest, *settings.ListNetworkConnectivityConfigurationsResponse, settings.NetworkConnectivityConfiguration] { +func (_m *MockNetworkConnectivityInterface) ListNetworkConnectivityConfigurations(ctx context.Context, request settings.ListNetworkConnectivityConfigurationsRequest) listing.Iterator[settings.NetworkConnectivityConfiguration] { ret := _m.Called(ctx, request) if len(ret) == 0 { panic("no return value specified for ListNetworkConnectivityConfigurations") } - var r0 *listing.PaginatingIterator[settings.ListNetworkConnectivityConfigurationsRequest, *settings.ListNetworkConnectivityConfigurationsResponse, settings.NetworkConnectivityConfiguration] - if rf, ok := ret.Get(0).(func(context.Context, settings.ListNetworkConnectivityConfigurationsRequest) *listing.PaginatingIterator[settings.ListNetworkConnectivityConfigurationsRequest, *settings.ListNetworkConnectivityConfigurationsResponse, settings.NetworkConnectivityConfiguration]); ok { + var r0 listing.Iterator[settings.NetworkConnectivityConfiguration] + if rf, ok := ret.Get(0).(func(context.Context, settings.ListNetworkConnectivityConfigurationsRequest) listing.Iterator[settings.NetworkConnectivityConfiguration]); ok { r0 = rf(ctx, request) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.PaginatingIterator[settings.ListNetworkConnectivityConfigurationsRequest, *settings.ListNetworkConnectivityConfigurationsResponse, settings.NetworkConnectivityConfiguration]) + r0 = ret.Get(0).(listing.Iterator[settings.NetworkConnectivityConfiguration]) } } @@ -678,12 +678,12 @@ func (_c *MockNetworkConnectivityInterface_ListNetworkConnectivityConfigurations return _c } -func (_c *MockNetworkConnectivityInterface_ListNetworkConnectivityConfigurations_Call) Return(_a0 *listing.PaginatingIterator[settings.ListNetworkConnectivityConfigurationsRequest, *settings.ListNetworkConnectivityConfigurationsResponse, settings.NetworkConnectivityConfiguration]) *MockNetworkConnectivityInterface_ListNetworkConnectivityConfigurations_Call { +func (_c *MockNetworkConnectivityInterface_ListNetworkConnectivityConfigurations_Call) Return(_a0 listing.Iterator[settings.NetworkConnectivityConfiguration]) *MockNetworkConnectivityInterface_ListNetworkConnectivityConfigurations_Call { _c.Call.Return(_a0) return _c } -func (_c *MockNetworkConnectivityInterface_ListNetworkConnectivityConfigurations_Call) RunAndReturn(run func(context.Context, settings.ListNetworkConnectivityConfigurationsRequest) *listing.PaginatingIterator[settings.ListNetworkConnectivityConfigurationsRequest, *settings.ListNetworkConnectivityConfigurationsResponse, settings.NetworkConnectivityConfiguration]) *MockNetworkConnectivityInterface_ListNetworkConnectivityConfigurations_Call { +func (_c *MockNetworkConnectivityInterface_ListNetworkConnectivityConfigurations_Call) RunAndReturn(run func(context.Context, settings.ListNetworkConnectivityConfigurationsRequest) listing.Iterator[settings.NetworkConnectivityConfiguration]) *MockNetworkConnectivityInterface_ListNetworkConnectivityConfigurations_Call { _c.Call.Return(run) return _c } @@ -748,19 +748,19 @@ func (_c *MockNetworkConnectivityInterface_ListNetworkConnectivityConfigurations } // ListPrivateEndpointRules provides a mock function with given fields: ctx, request -func (_m *MockNetworkConnectivityInterface) ListPrivateEndpointRules(ctx context.Context, request settings.ListPrivateEndpointRulesRequest) *listing.PaginatingIterator[settings.ListPrivateEndpointRulesRequest, *settings.ListNccAzurePrivateEndpointRulesResponse, settings.NccAzurePrivateEndpointRule] { +func (_m *MockNetworkConnectivityInterface) ListPrivateEndpointRules(ctx context.Context, request settings.ListPrivateEndpointRulesRequest) listing.Iterator[settings.NccAzurePrivateEndpointRule] { ret := _m.Called(ctx, request) if len(ret) == 0 { panic("no return value specified for ListPrivateEndpointRules") } - var r0 *listing.PaginatingIterator[settings.ListPrivateEndpointRulesRequest, *settings.ListNccAzurePrivateEndpointRulesResponse, settings.NccAzurePrivateEndpointRule] - if rf, ok := ret.Get(0).(func(context.Context, settings.ListPrivateEndpointRulesRequest) *listing.PaginatingIterator[settings.ListPrivateEndpointRulesRequest, *settings.ListNccAzurePrivateEndpointRulesResponse, settings.NccAzurePrivateEndpointRule]); ok { + var r0 listing.Iterator[settings.NccAzurePrivateEndpointRule] + if rf, ok := ret.Get(0).(func(context.Context, settings.ListPrivateEndpointRulesRequest) listing.Iterator[settings.NccAzurePrivateEndpointRule]); ok { r0 = rf(ctx, request) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.PaginatingIterator[settings.ListPrivateEndpointRulesRequest, *settings.ListNccAzurePrivateEndpointRulesResponse, settings.NccAzurePrivateEndpointRule]) + r0 = ret.Get(0).(listing.Iterator[settings.NccAzurePrivateEndpointRule]) } } @@ -786,12 +786,12 @@ func (_c *MockNetworkConnectivityInterface_ListPrivateEndpointRules_Call) Run(ru return _c } -func (_c *MockNetworkConnectivityInterface_ListPrivateEndpointRules_Call) Return(_a0 *listing.PaginatingIterator[settings.ListPrivateEndpointRulesRequest, *settings.ListNccAzurePrivateEndpointRulesResponse, settings.NccAzurePrivateEndpointRule]) *MockNetworkConnectivityInterface_ListPrivateEndpointRules_Call { +func (_c *MockNetworkConnectivityInterface_ListPrivateEndpointRules_Call) Return(_a0 listing.Iterator[settings.NccAzurePrivateEndpointRule]) *MockNetworkConnectivityInterface_ListPrivateEndpointRules_Call { _c.Call.Return(_a0) return _c } -func (_c *MockNetworkConnectivityInterface_ListPrivateEndpointRules_Call) RunAndReturn(run func(context.Context, settings.ListPrivateEndpointRulesRequest) *listing.PaginatingIterator[settings.ListPrivateEndpointRulesRequest, *settings.ListNccAzurePrivateEndpointRulesResponse, settings.NccAzurePrivateEndpointRule]) *MockNetworkConnectivityInterface_ListPrivateEndpointRules_Call { +func (_c *MockNetworkConnectivityInterface_ListPrivateEndpointRules_Call) RunAndReturn(run func(context.Context, settings.ListPrivateEndpointRulesRequest) listing.Iterator[settings.NccAzurePrivateEndpointRule]) *MockNetworkConnectivityInterface_ListPrivateEndpointRules_Call { _c.Call.Return(run) return _c } diff --git a/experimental/mocks/service/settings/mock_token_management_interface.go b/experimental/mocks/service/settings/mock_token_management_interface.go index 527981df6..acc65aaf7 100644 --- a/experimental/mocks/service/settings/mock_token_management_interface.go +++ b/experimental/mocks/service/settings/mock_token_management_interface.go @@ -518,19 +518,19 @@ func (_c *MockTokenManagementInterface_Impl_Call) RunAndReturn(run func() settin } // List provides a mock function with given fields: ctx, request -func (_m *MockTokenManagementInterface) List(ctx context.Context, request settings.ListTokenManagementRequest) *listing.PaginatingIterator[settings.ListTokenManagementRequest, *settings.ListTokensResponse, settings.TokenInfo] { +func (_m *MockTokenManagementInterface) List(ctx context.Context, request settings.ListTokenManagementRequest) listing.Iterator[settings.TokenInfo] { ret := _m.Called(ctx, request) if len(ret) == 0 { panic("no return value specified for List") } - var r0 *listing.PaginatingIterator[settings.ListTokenManagementRequest, *settings.ListTokensResponse, settings.TokenInfo] - if rf, ok := ret.Get(0).(func(context.Context, settings.ListTokenManagementRequest) *listing.PaginatingIterator[settings.ListTokenManagementRequest, *settings.ListTokensResponse, settings.TokenInfo]); ok { + var r0 listing.Iterator[settings.TokenInfo] + if rf, ok := ret.Get(0).(func(context.Context, settings.ListTokenManagementRequest) listing.Iterator[settings.TokenInfo]); ok { r0 = rf(ctx, request) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.PaginatingIterator[settings.ListTokenManagementRequest, *settings.ListTokensResponse, settings.TokenInfo]) + r0 = ret.Get(0).(listing.Iterator[settings.TokenInfo]) } } @@ -556,12 +556,12 @@ func (_c *MockTokenManagementInterface_List_Call) Run(run func(ctx context.Conte return _c } -func (_c *MockTokenManagementInterface_List_Call) Return(_a0 *listing.PaginatingIterator[settings.ListTokenManagementRequest, *settings.ListTokensResponse, settings.TokenInfo]) *MockTokenManagementInterface_List_Call { +func (_c *MockTokenManagementInterface_List_Call) Return(_a0 listing.Iterator[settings.TokenInfo]) *MockTokenManagementInterface_List_Call { _c.Call.Return(_a0) return _c } -func (_c *MockTokenManagementInterface_List_Call) RunAndReturn(run func(context.Context, settings.ListTokenManagementRequest) *listing.PaginatingIterator[settings.ListTokenManagementRequest, *settings.ListTokensResponse, settings.TokenInfo]) *MockTokenManagementInterface_List_Call { +func (_c *MockTokenManagementInterface_List_Call) RunAndReturn(run func(context.Context, settings.ListTokenManagementRequest) listing.Iterator[settings.TokenInfo]) *MockTokenManagementInterface_List_Call { _c.Call.Return(run) return _c } diff --git a/experimental/mocks/service/settings/mock_tokens_interface.go b/experimental/mocks/service/settings/mock_tokens_interface.go index b0f67a0cd..632aea086 100644 --- a/experimental/mocks/service/settings/mock_tokens_interface.go +++ b/experimental/mocks/service/settings/mock_tokens_interface.go @@ -284,19 +284,19 @@ func (_c *MockTokensInterface_Impl_Call) RunAndReturn(run func() settings.Tokens } // List provides a mock function with given fields: ctx -func (_m *MockTokensInterface) List(ctx context.Context) *listing.PaginatingIterator[struct{}, *settings.ListPublicTokensResponse, settings.PublicTokenInfo] { +func (_m *MockTokensInterface) List(ctx context.Context) listing.Iterator[settings.PublicTokenInfo] { ret := _m.Called(ctx) if len(ret) == 0 { panic("no return value specified for List") } - var r0 *listing.PaginatingIterator[struct{}, *settings.ListPublicTokensResponse, settings.PublicTokenInfo] - if rf, ok := ret.Get(0).(func(context.Context) *listing.PaginatingIterator[struct{}, *settings.ListPublicTokensResponse, settings.PublicTokenInfo]); ok { + var r0 listing.Iterator[settings.PublicTokenInfo] + if rf, ok := ret.Get(0).(func(context.Context) listing.Iterator[settings.PublicTokenInfo]); ok { r0 = rf(ctx) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.PaginatingIterator[struct{}, *settings.ListPublicTokensResponse, settings.PublicTokenInfo]) + r0 = ret.Get(0).(listing.Iterator[settings.PublicTokenInfo]) } } @@ -321,12 +321,12 @@ func (_c *MockTokensInterface_List_Call) Run(run func(ctx context.Context)) *Moc return _c } -func (_c *MockTokensInterface_List_Call) Return(_a0 *listing.PaginatingIterator[struct{}, *settings.ListPublicTokensResponse, settings.PublicTokenInfo]) *MockTokensInterface_List_Call { +func (_c *MockTokensInterface_List_Call) Return(_a0 listing.Iterator[settings.PublicTokenInfo]) *MockTokensInterface_List_Call { _c.Call.Return(_a0) return _c } -func (_c *MockTokensInterface_List_Call) RunAndReturn(run func(context.Context) *listing.PaginatingIterator[struct{}, *settings.ListPublicTokensResponse, settings.PublicTokenInfo]) *MockTokensInterface_List_Call { +func (_c *MockTokensInterface_List_Call) RunAndReturn(run func(context.Context) listing.Iterator[settings.PublicTokenInfo]) *MockTokensInterface_List_Call { _c.Call.Return(run) return _c } diff --git a/experimental/mocks/service/sharing/mock_clean_rooms_interface.go b/experimental/mocks/service/sharing/mock_clean_rooms_interface.go index ff9054774..96a451ac2 100644 --- a/experimental/mocks/service/sharing/mock_clean_rooms_interface.go +++ b/experimental/mocks/service/sharing/mock_clean_rooms_interface.go @@ -343,19 +343,19 @@ func (_c *MockCleanRoomsInterface_Impl_Call) RunAndReturn(run func() sharing.Cle } // List provides a mock function with given fields: ctx, request -func (_m *MockCleanRoomsInterface) List(ctx context.Context, request sharing.ListCleanRoomsRequest) *listing.PaginatingIterator[sharing.ListCleanRoomsRequest, *sharing.ListCleanRoomsResponse, sharing.CleanRoomInfo] { +func (_m *MockCleanRoomsInterface) List(ctx context.Context, request sharing.ListCleanRoomsRequest) listing.Iterator[sharing.CleanRoomInfo] { ret := _m.Called(ctx, request) if len(ret) == 0 { panic("no return value specified for List") } - var r0 *listing.PaginatingIterator[sharing.ListCleanRoomsRequest, *sharing.ListCleanRoomsResponse, sharing.CleanRoomInfo] - if rf, ok := ret.Get(0).(func(context.Context, sharing.ListCleanRoomsRequest) *listing.PaginatingIterator[sharing.ListCleanRoomsRequest, *sharing.ListCleanRoomsResponse, sharing.CleanRoomInfo]); ok { + var r0 listing.Iterator[sharing.CleanRoomInfo] + if rf, ok := ret.Get(0).(func(context.Context, sharing.ListCleanRoomsRequest) listing.Iterator[sharing.CleanRoomInfo]); ok { r0 = rf(ctx, request) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.PaginatingIterator[sharing.ListCleanRoomsRequest, *sharing.ListCleanRoomsResponse, sharing.CleanRoomInfo]) + r0 = ret.Get(0).(listing.Iterator[sharing.CleanRoomInfo]) } } @@ -381,12 +381,12 @@ func (_c *MockCleanRoomsInterface_List_Call) Run(run func(ctx context.Context, r return _c } -func (_c *MockCleanRoomsInterface_List_Call) Return(_a0 *listing.PaginatingIterator[sharing.ListCleanRoomsRequest, *sharing.ListCleanRoomsResponse, sharing.CleanRoomInfo]) *MockCleanRoomsInterface_List_Call { +func (_c *MockCleanRoomsInterface_List_Call) Return(_a0 listing.Iterator[sharing.CleanRoomInfo]) *MockCleanRoomsInterface_List_Call { _c.Call.Return(_a0) return _c } -func (_c *MockCleanRoomsInterface_List_Call) RunAndReturn(run func(context.Context, sharing.ListCleanRoomsRequest) *listing.PaginatingIterator[sharing.ListCleanRoomsRequest, *sharing.ListCleanRoomsResponse, sharing.CleanRoomInfo]) *MockCleanRoomsInterface_List_Call { +func (_c *MockCleanRoomsInterface_List_Call) RunAndReturn(run func(context.Context, sharing.ListCleanRoomsRequest) listing.Iterator[sharing.CleanRoomInfo]) *MockCleanRoomsInterface_List_Call { _c.Call.Return(run) return _c } diff --git a/experimental/mocks/service/sharing/mock_providers_interface.go b/experimental/mocks/service/sharing/mock_providers_interface.go index e09871a96..bafe7cbfc 100644 --- a/experimental/mocks/service/sharing/mock_providers_interface.go +++ b/experimental/mocks/service/sharing/mock_providers_interface.go @@ -343,19 +343,19 @@ func (_c *MockProvidersInterface_Impl_Call) RunAndReturn(run func() sharing.Prov } // List provides a mock function with given fields: ctx, request -func (_m *MockProvidersInterface) List(ctx context.Context, request sharing.ListProvidersRequest) *listing.PaginatingIterator[sharing.ListProvidersRequest, *sharing.ListProvidersResponse, sharing.ProviderInfo] { +func (_m *MockProvidersInterface) List(ctx context.Context, request sharing.ListProvidersRequest) listing.Iterator[sharing.ProviderInfo] { ret := _m.Called(ctx, request) if len(ret) == 0 { panic("no return value specified for List") } - var r0 *listing.PaginatingIterator[sharing.ListProvidersRequest, *sharing.ListProvidersResponse, sharing.ProviderInfo] - if rf, ok := ret.Get(0).(func(context.Context, sharing.ListProvidersRequest) *listing.PaginatingIterator[sharing.ListProvidersRequest, *sharing.ListProvidersResponse, sharing.ProviderInfo]); ok { + var r0 listing.Iterator[sharing.ProviderInfo] + if rf, ok := ret.Get(0).(func(context.Context, sharing.ListProvidersRequest) listing.Iterator[sharing.ProviderInfo]); ok { r0 = rf(ctx, request) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.PaginatingIterator[sharing.ListProvidersRequest, *sharing.ListProvidersResponse, sharing.ProviderInfo]) + r0 = ret.Get(0).(listing.Iterator[sharing.ProviderInfo]) } } @@ -381,12 +381,12 @@ func (_c *MockProvidersInterface_List_Call) Run(run func(ctx context.Context, re return _c } -func (_c *MockProvidersInterface_List_Call) Return(_a0 *listing.PaginatingIterator[sharing.ListProvidersRequest, *sharing.ListProvidersResponse, sharing.ProviderInfo]) *MockProvidersInterface_List_Call { +func (_c *MockProvidersInterface_List_Call) Return(_a0 listing.Iterator[sharing.ProviderInfo]) *MockProvidersInterface_List_Call { _c.Call.Return(_a0) return _c } -func (_c *MockProvidersInterface_List_Call) RunAndReturn(run func(context.Context, sharing.ListProvidersRequest) *listing.PaginatingIterator[sharing.ListProvidersRequest, *sharing.ListProvidersResponse, sharing.ProviderInfo]) *MockProvidersInterface_List_Call { +func (_c *MockProvidersInterface_List_Call) RunAndReturn(run func(context.Context, sharing.ListProvidersRequest) listing.Iterator[sharing.ProviderInfo]) *MockProvidersInterface_List_Call { _c.Call.Return(run) return _c } @@ -451,19 +451,19 @@ func (_c *MockProvidersInterface_ListAll_Call) RunAndReturn(run func(context.Con } // ListShares provides a mock function with given fields: ctx, request -func (_m *MockProvidersInterface) ListShares(ctx context.Context, request sharing.ListSharesRequest) *listing.PaginatingIterator[sharing.ListSharesRequest, *sharing.ListProviderSharesResponse, sharing.ProviderShare] { +func (_m *MockProvidersInterface) ListShares(ctx context.Context, request sharing.ListSharesRequest) listing.Iterator[sharing.ProviderShare] { ret := _m.Called(ctx, request) if len(ret) == 0 { panic("no return value specified for ListShares") } - var r0 *listing.PaginatingIterator[sharing.ListSharesRequest, *sharing.ListProviderSharesResponse, sharing.ProviderShare] - if rf, ok := ret.Get(0).(func(context.Context, sharing.ListSharesRequest) *listing.PaginatingIterator[sharing.ListSharesRequest, *sharing.ListProviderSharesResponse, sharing.ProviderShare]); ok { + var r0 listing.Iterator[sharing.ProviderShare] + if rf, ok := ret.Get(0).(func(context.Context, sharing.ListSharesRequest) listing.Iterator[sharing.ProviderShare]); ok { r0 = rf(ctx, request) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.PaginatingIterator[sharing.ListSharesRequest, *sharing.ListProviderSharesResponse, sharing.ProviderShare]) + r0 = ret.Get(0).(listing.Iterator[sharing.ProviderShare]) } } @@ -489,12 +489,12 @@ func (_c *MockProvidersInterface_ListShares_Call) Run(run func(ctx context.Conte return _c } -func (_c *MockProvidersInterface_ListShares_Call) Return(_a0 *listing.PaginatingIterator[sharing.ListSharesRequest, *sharing.ListProviderSharesResponse, sharing.ProviderShare]) *MockProvidersInterface_ListShares_Call { +func (_c *MockProvidersInterface_ListShares_Call) Return(_a0 listing.Iterator[sharing.ProviderShare]) *MockProvidersInterface_ListShares_Call { _c.Call.Return(_a0) return _c } -func (_c *MockProvidersInterface_ListShares_Call) RunAndReturn(run func(context.Context, sharing.ListSharesRequest) *listing.PaginatingIterator[sharing.ListSharesRequest, *sharing.ListProviderSharesResponse, sharing.ProviderShare]) *MockProvidersInterface_ListShares_Call { +func (_c *MockProvidersInterface_ListShares_Call) RunAndReturn(run func(context.Context, sharing.ListSharesRequest) listing.Iterator[sharing.ProviderShare]) *MockProvidersInterface_ListShares_Call { _c.Call.Return(run) return _c } diff --git a/experimental/mocks/service/sharing/mock_recipients_interface.go b/experimental/mocks/service/sharing/mock_recipients_interface.go index d8adc291e..9e52d4344 100644 --- a/experimental/mocks/service/sharing/mock_recipients_interface.go +++ b/experimental/mocks/service/sharing/mock_recipients_interface.go @@ -343,19 +343,19 @@ func (_c *MockRecipientsInterface_Impl_Call) RunAndReturn(run func() sharing.Rec } // List provides a mock function with given fields: ctx, request -func (_m *MockRecipientsInterface) List(ctx context.Context, request sharing.ListRecipientsRequest) *listing.PaginatingIterator[sharing.ListRecipientsRequest, *sharing.ListRecipientsResponse, sharing.RecipientInfo] { +func (_m *MockRecipientsInterface) List(ctx context.Context, request sharing.ListRecipientsRequest) listing.Iterator[sharing.RecipientInfo] { ret := _m.Called(ctx, request) if len(ret) == 0 { panic("no return value specified for List") } - var r0 *listing.PaginatingIterator[sharing.ListRecipientsRequest, *sharing.ListRecipientsResponse, sharing.RecipientInfo] - if rf, ok := ret.Get(0).(func(context.Context, sharing.ListRecipientsRequest) *listing.PaginatingIterator[sharing.ListRecipientsRequest, *sharing.ListRecipientsResponse, sharing.RecipientInfo]); ok { + var r0 listing.Iterator[sharing.RecipientInfo] + if rf, ok := ret.Get(0).(func(context.Context, sharing.ListRecipientsRequest) listing.Iterator[sharing.RecipientInfo]); ok { r0 = rf(ctx, request) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.PaginatingIterator[sharing.ListRecipientsRequest, *sharing.ListRecipientsResponse, sharing.RecipientInfo]) + r0 = ret.Get(0).(listing.Iterator[sharing.RecipientInfo]) } } @@ -381,12 +381,12 @@ func (_c *MockRecipientsInterface_List_Call) Run(run func(ctx context.Context, r return _c } -func (_c *MockRecipientsInterface_List_Call) Return(_a0 *listing.PaginatingIterator[sharing.ListRecipientsRequest, *sharing.ListRecipientsResponse, sharing.RecipientInfo]) *MockRecipientsInterface_List_Call { +func (_c *MockRecipientsInterface_List_Call) Return(_a0 listing.Iterator[sharing.RecipientInfo]) *MockRecipientsInterface_List_Call { _c.Call.Return(_a0) return _c } -func (_c *MockRecipientsInterface_List_Call) RunAndReturn(run func(context.Context, sharing.ListRecipientsRequest) *listing.PaginatingIterator[sharing.ListRecipientsRequest, *sharing.ListRecipientsResponse, sharing.RecipientInfo]) *MockRecipientsInterface_List_Call { +func (_c *MockRecipientsInterface_List_Call) RunAndReturn(run func(context.Context, sharing.ListRecipientsRequest) listing.Iterator[sharing.RecipientInfo]) *MockRecipientsInterface_List_Call { _c.Call.Return(run) return _c } diff --git a/experimental/mocks/service/sharing/mock_shares_interface.go b/experimental/mocks/service/sharing/mock_shares_interface.go index da4f874e7..d303e9a90 100644 --- a/experimental/mocks/service/sharing/mock_shares_interface.go +++ b/experimental/mocks/service/sharing/mock_shares_interface.go @@ -346,19 +346,19 @@ func (_c *MockSharesInterface_Impl_Call) RunAndReturn(run func() sharing.SharesS } // List provides a mock function with given fields: ctx -func (_m *MockSharesInterface) List(ctx context.Context) *listing.PaginatingIterator[struct{}, *sharing.ListSharesResponse, sharing.ShareInfo] { +func (_m *MockSharesInterface) List(ctx context.Context) listing.Iterator[sharing.ShareInfo] { ret := _m.Called(ctx) if len(ret) == 0 { panic("no return value specified for List") } - var r0 *listing.PaginatingIterator[struct{}, *sharing.ListSharesResponse, sharing.ShareInfo] - if rf, ok := ret.Get(0).(func(context.Context) *listing.PaginatingIterator[struct{}, *sharing.ListSharesResponse, sharing.ShareInfo]); ok { + var r0 listing.Iterator[sharing.ShareInfo] + if rf, ok := ret.Get(0).(func(context.Context) listing.Iterator[sharing.ShareInfo]); ok { r0 = rf(ctx) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.PaginatingIterator[struct{}, *sharing.ListSharesResponse, sharing.ShareInfo]) + r0 = ret.Get(0).(listing.Iterator[sharing.ShareInfo]) } } @@ -383,12 +383,12 @@ func (_c *MockSharesInterface_List_Call) Run(run func(ctx context.Context)) *Moc return _c } -func (_c *MockSharesInterface_List_Call) Return(_a0 *listing.PaginatingIterator[struct{}, *sharing.ListSharesResponse, sharing.ShareInfo]) *MockSharesInterface_List_Call { +func (_c *MockSharesInterface_List_Call) Return(_a0 listing.Iterator[sharing.ShareInfo]) *MockSharesInterface_List_Call { _c.Call.Return(_a0) return _c } -func (_c *MockSharesInterface_List_Call) RunAndReturn(run func(context.Context) *listing.PaginatingIterator[struct{}, *sharing.ListSharesResponse, sharing.ShareInfo]) *MockSharesInterface_List_Call { +func (_c *MockSharesInterface_List_Call) RunAndReturn(run func(context.Context) listing.Iterator[sharing.ShareInfo]) *MockSharesInterface_List_Call { _c.Call.Return(run) return _c } diff --git a/experimental/mocks/service/sql/mock_dashboards_interface.go b/experimental/mocks/service/sql/mock_dashboards_interface.go index c7e831633..4a3378f37 100644 --- a/experimental/mocks/service/sql/mock_dashboards_interface.go +++ b/experimental/mocks/service/sql/mock_dashboards_interface.go @@ -461,19 +461,19 @@ func (_c *MockDashboardsInterface_Impl_Call) RunAndReturn(run func() sql.Dashboa } // List provides a mock function with given fields: ctx, request -func (_m *MockDashboardsInterface) List(ctx context.Context, request sql.ListDashboardsRequest) *listing.DeduplicatingIterator[sql.Dashboard, string] { +func (_m *MockDashboardsInterface) List(ctx context.Context, request sql.ListDashboardsRequest) listing.Iterator[sql.Dashboard] { ret := _m.Called(ctx, request) if len(ret) == 0 { panic("no return value specified for List") } - var r0 *listing.DeduplicatingIterator[sql.Dashboard, string] - if rf, ok := ret.Get(0).(func(context.Context, sql.ListDashboardsRequest) *listing.DeduplicatingIterator[sql.Dashboard, string]); ok { + var r0 listing.Iterator[sql.Dashboard] + if rf, ok := ret.Get(0).(func(context.Context, sql.ListDashboardsRequest) listing.Iterator[sql.Dashboard]); ok { r0 = rf(ctx, request) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.DeduplicatingIterator[sql.Dashboard, string]) + r0 = ret.Get(0).(listing.Iterator[sql.Dashboard]) } } @@ -499,12 +499,12 @@ func (_c *MockDashboardsInterface_List_Call) Run(run func(ctx context.Context, r return _c } -func (_c *MockDashboardsInterface_List_Call) Return(_a0 *listing.DeduplicatingIterator[sql.Dashboard, string]) *MockDashboardsInterface_List_Call { +func (_c *MockDashboardsInterface_List_Call) Return(_a0 listing.Iterator[sql.Dashboard]) *MockDashboardsInterface_List_Call { _c.Call.Return(_a0) return _c } -func (_c *MockDashboardsInterface_List_Call) RunAndReturn(run func(context.Context, sql.ListDashboardsRequest) *listing.DeduplicatingIterator[sql.Dashboard, string]) *MockDashboardsInterface_List_Call { +func (_c *MockDashboardsInterface_List_Call) RunAndReturn(run func(context.Context, sql.ListDashboardsRequest) listing.Iterator[sql.Dashboard]) *MockDashboardsInterface_List_Call { _c.Call.Return(run) return _c } diff --git a/experimental/mocks/service/sql/mock_queries_interface.go b/experimental/mocks/service/sql/mock_queries_interface.go index bdabdcdd6..5f2e84ef1 100644 --- a/experimental/mocks/service/sql/mock_queries_interface.go +++ b/experimental/mocks/service/sql/mock_queries_interface.go @@ -402,19 +402,19 @@ func (_c *MockQueriesInterface_Impl_Call) RunAndReturn(run func() sql.QueriesSer } // List provides a mock function with given fields: ctx, request -func (_m *MockQueriesInterface) List(ctx context.Context, request sql.ListQueriesRequest) *listing.DeduplicatingIterator[sql.Query, string] { +func (_m *MockQueriesInterface) List(ctx context.Context, request sql.ListQueriesRequest) listing.Iterator[sql.Query] { ret := _m.Called(ctx, request) if len(ret) == 0 { panic("no return value specified for List") } - var r0 *listing.DeduplicatingIterator[sql.Query, string] - if rf, ok := ret.Get(0).(func(context.Context, sql.ListQueriesRequest) *listing.DeduplicatingIterator[sql.Query, string]); ok { + var r0 listing.Iterator[sql.Query] + if rf, ok := ret.Get(0).(func(context.Context, sql.ListQueriesRequest) listing.Iterator[sql.Query]); ok { r0 = rf(ctx, request) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.DeduplicatingIterator[sql.Query, string]) + r0 = ret.Get(0).(listing.Iterator[sql.Query]) } } @@ -440,12 +440,12 @@ func (_c *MockQueriesInterface_List_Call) Run(run func(ctx context.Context, requ return _c } -func (_c *MockQueriesInterface_List_Call) Return(_a0 *listing.DeduplicatingIterator[sql.Query, string]) *MockQueriesInterface_List_Call { +func (_c *MockQueriesInterface_List_Call) Return(_a0 listing.Iterator[sql.Query]) *MockQueriesInterface_List_Call { _c.Call.Return(_a0) return _c } -func (_c *MockQueriesInterface_List_Call) RunAndReturn(run func(context.Context, sql.ListQueriesRequest) *listing.DeduplicatingIterator[sql.Query, string]) *MockQueriesInterface_List_Call { +func (_c *MockQueriesInterface_List_Call) RunAndReturn(run func(context.Context, sql.ListQueriesRequest) listing.Iterator[sql.Query]) *MockQueriesInterface_List_Call { _c.Call.Return(run) return _c } diff --git a/experimental/mocks/service/sql/mock_query_history_interface.go b/experimental/mocks/service/sql/mock_query_history_interface.go index 0afcfa059..0e394178f 100644 --- a/experimental/mocks/service/sql/mock_query_history_interface.go +++ b/experimental/mocks/service/sql/mock_query_history_interface.go @@ -72,19 +72,19 @@ func (_c *MockQueryHistoryInterface_Impl_Call) RunAndReturn(run func() sql.Query } // List provides a mock function with given fields: ctx, request -func (_m *MockQueryHistoryInterface) List(ctx context.Context, request sql.ListQueryHistoryRequest) *listing.PaginatingIterator[sql.ListQueryHistoryRequest, *sql.ListQueriesResponse, sql.QueryInfo] { +func (_m *MockQueryHistoryInterface) List(ctx context.Context, request sql.ListQueryHistoryRequest) listing.Iterator[sql.QueryInfo] { ret := _m.Called(ctx, request) if len(ret) == 0 { panic("no return value specified for List") } - var r0 *listing.PaginatingIterator[sql.ListQueryHistoryRequest, *sql.ListQueriesResponse, sql.QueryInfo] - if rf, ok := ret.Get(0).(func(context.Context, sql.ListQueryHistoryRequest) *listing.PaginatingIterator[sql.ListQueryHistoryRequest, *sql.ListQueriesResponse, sql.QueryInfo]); ok { + var r0 listing.Iterator[sql.QueryInfo] + if rf, ok := ret.Get(0).(func(context.Context, sql.ListQueryHistoryRequest) listing.Iterator[sql.QueryInfo]); ok { r0 = rf(ctx, request) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.PaginatingIterator[sql.ListQueryHistoryRequest, *sql.ListQueriesResponse, sql.QueryInfo]) + r0 = ret.Get(0).(listing.Iterator[sql.QueryInfo]) } } @@ -110,12 +110,12 @@ func (_c *MockQueryHistoryInterface_List_Call) Run(run func(ctx context.Context, return _c } -func (_c *MockQueryHistoryInterface_List_Call) Return(_a0 *listing.PaginatingIterator[sql.ListQueryHistoryRequest, *sql.ListQueriesResponse, sql.QueryInfo]) *MockQueryHistoryInterface_List_Call { +func (_c *MockQueryHistoryInterface_List_Call) Return(_a0 listing.Iterator[sql.QueryInfo]) *MockQueryHistoryInterface_List_Call { _c.Call.Return(_a0) return _c } -func (_c *MockQueryHistoryInterface_List_Call) RunAndReturn(run func(context.Context, sql.ListQueryHistoryRequest) *listing.PaginatingIterator[sql.ListQueryHistoryRequest, *sql.ListQueriesResponse, sql.QueryInfo]) *MockQueryHistoryInterface_List_Call { +func (_c *MockQueryHistoryInterface_List_Call) RunAndReturn(run func(context.Context, sql.ListQueryHistoryRequest) listing.Iterator[sql.QueryInfo]) *MockQueryHistoryInterface_List_Call { _c.Call.Return(run) return _c } diff --git a/experimental/mocks/service/sql/mock_warehouses_interface.go b/experimental/mocks/service/sql/mock_warehouses_interface.go index 55c60ce8a..fb9586f67 100644 --- a/experimental/mocks/service/sql/mock_warehouses_interface.go +++ b/experimental/mocks/service/sql/mock_warehouses_interface.go @@ -256,23 +256,23 @@ func (_c *MockWarehousesInterface_DeleteById_Call) RunAndReturn(run func(context } // Edit provides a mock function with given fields: ctx, editWarehouseRequest -func (_m *MockWarehousesInterface) Edit(ctx context.Context, editWarehouseRequest sql.EditWarehouseRequest) (*sql.WaitGetWarehouseRunning[interface{}], error) { +func (_m *MockWarehousesInterface) Edit(ctx context.Context, editWarehouseRequest sql.EditWarehouseRequest) (*sql.WaitGetWarehouseRunning[struct{}], error) { ret := _m.Called(ctx, editWarehouseRequest) if len(ret) == 0 { panic("no return value specified for Edit") } - var r0 *sql.WaitGetWarehouseRunning[interface{}] + var r0 *sql.WaitGetWarehouseRunning[struct{}] var r1 error - if rf, ok := ret.Get(0).(func(context.Context, sql.EditWarehouseRequest) (*sql.WaitGetWarehouseRunning[interface{}], error)); ok { + if rf, ok := ret.Get(0).(func(context.Context, sql.EditWarehouseRequest) (*sql.WaitGetWarehouseRunning[struct{}], error)); ok { return rf(ctx, editWarehouseRequest) } - if rf, ok := ret.Get(0).(func(context.Context, sql.EditWarehouseRequest) *sql.WaitGetWarehouseRunning[interface{}]); ok { + if rf, ok := ret.Get(0).(func(context.Context, sql.EditWarehouseRequest) *sql.WaitGetWarehouseRunning[struct{}]); ok { r0 = rf(ctx, editWarehouseRequest) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*sql.WaitGetWarehouseRunning[interface{}]) + r0 = ret.Get(0).(*sql.WaitGetWarehouseRunning[struct{}]) } } @@ -304,12 +304,12 @@ func (_c *MockWarehousesInterface_Edit_Call) Run(run func(ctx context.Context, e return _c } -func (_c *MockWarehousesInterface_Edit_Call) Return(_a0 *sql.WaitGetWarehouseRunning[interface{}], _a1 error) *MockWarehousesInterface_Edit_Call { +func (_c *MockWarehousesInterface_Edit_Call) Return(_a0 *sql.WaitGetWarehouseRunning[struct{}], _a1 error) *MockWarehousesInterface_Edit_Call { _c.Call.Return(_a0, _a1) return _c } -func (_c *MockWarehousesInterface_Edit_Call) RunAndReturn(run func(context.Context, sql.EditWarehouseRequest) (*sql.WaitGetWarehouseRunning[interface{}], error)) *MockWarehousesInterface_Edit_Call { +func (_c *MockWarehousesInterface_Edit_Call) RunAndReturn(run func(context.Context, sql.EditWarehouseRequest) (*sql.WaitGetWarehouseRunning[struct{}], error)) *MockWarehousesInterface_Edit_Call { _c.Call.Return(run) return _c } @@ -966,19 +966,19 @@ func (_c *MockWarehousesInterface_Impl_Call) RunAndReturn(run func() sql.Warehou } // List provides a mock function with given fields: ctx, request -func (_m *MockWarehousesInterface) List(ctx context.Context, request sql.ListWarehousesRequest) *listing.PaginatingIterator[sql.ListWarehousesRequest, *sql.ListWarehousesResponse, sql.EndpointInfo] { +func (_m *MockWarehousesInterface) List(ctx context.Context, request sql.ListWarehousesRequest) listing.Iterator[sql.EndpointInfo] { ret := _m.Called(ctx, request) if len(ret) == 0 { panic("no return value specified for List") } - var r0 *listing.PaginatingIterator[sql.ListWarehousesRequest, *sql.ListWarehousesResponse, sql.EndpointInfo] - if rf, ok := ret.Get(0).(func(context.Context, sql.ListWarehousesRequest) *listing.PaginatingIterator[sql.ListWarehousesRequest, *sql.ListWarehousesResponse, sql.EndpointInfo]); ok { + var r0 listing.Iterator[sql.EndpointInfo] + if rf, ok := ret.Get(0).(func(context.Context, sql.ListWarehousesRequest) listing.Iterator[sql.EndpointInfo]); ok { r0 = rf(ctx, request) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.PaginatingIterator[sql.ListWarehousesRequest, *sql.ListWarehousesResponse, sql.EndpointInfo]) + r0 = ret.Get(0).(listing.Iterator[sql.EndpointInfo]) } } @@ -1004,12 +1004,12 @@ func (_c *MockWarehousesInterface_List_Call) Run(run func(ctx context.Context, r return _c } -func (_c *MockWarehousesInterface_List_Call) Return(_a0 *listing.PaginatingIterator[sql.ListWarehousesRequest, *sql.ListWarehousesResponse, sql.EndpointInfo]) *MockWarehousesInterface_List_Call { +func (_c *MockWarehousesInterface_List_Call) Return(_a0 listing.Iterator[sql.EndpointInfo]) *MockWarehousesInterface_List_Call { _c.Call.Return(_a0) return _c } -func (_c *MockWarehousesInterface_List_Call) RunAndReturn(run func(context.Context, sql.ListWarehousesRequest) *listing.PaginatingIterator[sql.ListWarehousesRequest, *sql.ListWarehousesResponse, sql.EndpointInfo]) *MockWarehousesInterface_List_Call { +func (_c *MockWarehousesInterface_List_Call) RunAndReturn(run func(context.Context, sql.ListWarehousesRequest) listing.Iterator[sql.EndpointInfo]) *MockWarehousesInterface_List_Call { _c.Call.Return(run) return _c } @@ -1180,23 +1180,23 @@ func (_c *MockWarehousesInterface_SetWorkspaceWarehouseConfig_Call) RunAndReturn } // Start provides a mock function with given fields: ctx, startRequest -func (_m *MockWarehousesInterface) Start(ctx context.Context, startRequest sql.StartRequest) (*sql.WaitGetWarehouseRunning[interface{}], error) { +func (_m *MockWarehousesInterface) Start(ctx context.Context, startRequest sql.StartRequest) (*sql.WaitGetWarehouseRunning[struct{}], error) { ret := _m.Called(ctx, startRequest) if len(ret) == 0 { panic("no return value specified for Start") } - var r0 *sql.WaitGetWarehouseRunning[interface{}] + var r0 *sql.WaitGetWarehouseRunning[struct{}] var r1 error - if rf, ok := ret.Get(0).(func(context.Context, sql.StartRequest) (*sql.WaitGetWarehouseRunning[interface{}], error)); ok { + if rf, ok := ret.Get(0).(func(context.Context, sql.StartRequest) (*sql.WaitGetWarehouseRunning[struct{}], error)); ok { return rf(ctx, startRequest) } - if rf, ok := ret.Get(0).(func(context.Context, sql.StartRequest) *sql.WaitGetWarehouseRunning[interface{}]); ok { + if rf, ok := ret.Get(0).(func(context.Context, sql.StartRequest) *sql.WaitGetWarehouseRunning[struct{}]); ok { r0 = rf(ctx, startRequest) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*sql.WaitGetWarehouseRunning[interface{}]) + r0 = ret.Get(0).(*sql.WaitGetWarehouseRunning[struct{}]) } } @@ -1228,12 +1228,12 @@ func (_c *MockWarehousesInterface_Start_Call) Run(run func(ctx context.Context, return _c } -func (_c *MockWarehousesInterface_Start_Call) Return(_a0 *sql.WaitGetWarehouseRunning[interface{}], _a1 error) *MockWarehousesInterface_Start_Call { +func (_c *MockWarehousesInterface_Start_Call) Return(_a0 *sql.WaitGetWarehouseRunning[struct{}], _a1 error) *MockWarehousesInterface_Start_Call { _c.Call.Return(_a0, _a1) return _c } -func (_c *MockWarehousesInterface_Start_Call) RunAndReturn(run func(context.Context, sql.StartRequest) (*sql.WaitGetWarehouseRunning[interface{}], error)) *MockWarehousesInterface_Start_Call { +func (_c *MockWarehousesInterface_Start_Call) RunAndReturn(run func(context.Context, sql.StartRequest) (*sql.WaitGetWarehouseRunning[struct{}], error)) *MockWarehousesInterface_Start_Call { _c.Call.Return(run) return _c } @@ -1313,23 +1313,23 @@ func (_c *MockWarehousesInterface_StartAndWait_Call) RunAndReturn(run func(conte } // Stop provides a mock function with given fields: ctx, stopRequest -func (_m *MockWarehousesInterface) Stop(ctx context.Context, stopRequest sql.StopRequest) (*sql.WaitGetWarehouseStopped[interface{}], error) { +func (_m *MockWarehousesInterface) Stop(ctx context.Context, stopRequest sql.StopRequest) (*sql.WaitGetWarehouseStopped[struct{}], error) { ret := _m.Called(ctx, stopRequest) if len(ret) == 0 { panic("no return value specified for Stop") } - var r0 *sql.WaitGetWarehouseStopped[interface{}] + var r0 *sql.WaitGetWarehouseStopped[struct{}] var r1 error - if rf, ok := ret.Get(0).(func(context.Context, sql.StopRequest) (*sql.WaitGetWarehouseStopped[interface{}], error)); ok { + if rf, ok := ret.Get(0).(func(context.Context, sql.StopRequest) (*sql.WaitGetWarehouseStopped[struct{}], error)); ok { return rf(ctx, stopRequest) } - if rf, ok := ret.Get(0).(func(context.Context, sql.StopRequest) *sql.WaitGetWarehouseStopped[interface{}]); ok { + if rf, ok := ret.Get(0).(func(context.Context, sql.StopRequest) *sql.WaitGetWarehouseStopped[struct{}]); ok { r0 = rf(ctx, stopRequest) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*sql.WaitGetWarehouseStopped[interface{}]) + r0 = ret.Get(0).(*sql.WaitGetWarehouseStopped[struct{}]) } } @@ -1361,12 +1361,12 @@ func (_c *MockWarehousesInterface_Stop_Call) Run(run func(ctx context.Context, s return _c } -func (_c *MockWarehousesInterface_Stop_Call) Return(_a0 *sql.WaitGetWarehouseStopped[interface{}], _a1 error) *MockWarehousesInterface_Stop_Call { +func (_c *MockWarehousesInterface_Stop_Call) Return(_a0 *sql.WaitGetWarehouseStopped[struct{}], _a1 error) *MockWarehousesInterface_Stop_Call { _c.Call.Return(_a0, _a1) return _c } -func (_c *MockWarehousesInterface_Stop_Call) RunAndReturn(run func(context.Context, sql.StopRequest) (*sql.WaitGetWarehouseStopped[interface{}], error)) *MockWarehousesInterface_Stop_Call { +func (_c *MockWarehousesInterface_Stop_Call) RunAndReturn(run func(context.Context, sql.StopRequest) (*sql.WaitGetWarehouseStopped[struct{}], error)) *MockWarehousesInterface_Stop_Call { _c.Call.Return(run) return _c } diff --git a/experimental/mocks/service/vectorsearch/mock_vector_search_endpoints_interface.go b/experimental/mocks/service/vectorsearch/mock_vector_search_endpoints_interface.go index 18097e3aa..77e845491 100644 --- a/experimental/mocks/service/vectorsearch/mock_vector_search_endpoints_interface.go +++ b/experimental/mocks/service/vectorsearch/mock_vector_search_endpoints_interface.go @@ -421,19 +421,19 @@ func (_c *MockVectorSearchEndpointsInterface_Impl_Call) RunAndReturn(run func() } // ListEndpoints provides a mock function with given fields: ctx, request -func (_m *MockVectorSearchEndpointsInterface) ListEndpoints(ctx context.Context, request vectorsearch.ListEndpointsRequest) *listing.PaginatingIterator[vectorsearch.ListEndpointsRequest, *vectorsearch.ListEndpointResponse, vectorsearch.EndpointInfo] { +func (_m *MockVectorSearchEndpointsInterface) ListEndpoints(ctx context.Context, request vectorsearch.ListEndpointsRequest) listing.Iterator[vectorsearch.EndpointInfo] { ret := _m.Called(ctx, request) if len(ret) == 0 { panic("no return value specified for ListEndpoints") } - var r0 *listing.PaginatingIterator[vectorsearch.ListEndpointsRequest, *vectorsearch.ListEndpointResponse, vectorsearch.EndpointInfo] - if rf, ok := ret.Get(0).(func(context.Context, vectorsearch.ListEndpointsRequest) *listing.PaginatingIterator[vectorsearch.ListEndpointsRequest, *vectorsearch.ListEndpointResponse, vectorsearch.EndpointInfo]); ok { + var r0 listing.Iterator[vectorsearch.EndpointInfo] + if rf, ok := ret.Get(0).(func(context.Context, vectorsearch.ListEndpointsRequest) listing.Iterator[vectorsearch.EndpointInfo]); ok { r0 = rf(ctx, request) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.PaginatingIterator[vectorsearch.ListEndpointsRequest, *vectorsearch.ListEndpointResponse, vectorsearch.EndpointInfo]) + r0 = ret.Get(0).(listing.Iterator[vectorsearch.EndpointInfo]) } } @@ -459,12 +459,12 @@ func (_c *MockVectorSearchEndpointsInterface_ListEndpoints_Call) Run(run func(ct return _c } -func (_c *MockVectorSearchEndpointsInterface_ListEndpoints_Call) Return(_a0 *listing.PaginatingIterator[vectorsearch.ListEndpointsRequest, *vectorsearch.ListEndpointResponse, vectorsearch.EndpointInfo]) *MockVectorSearchEndpointsInterface_ListEndpoints_Call { +func (_c *MockVectorSearchEndpointsInterface_ListEndpoints_Call) Return(_a0 listing.Iterator[vectorsearch.EndpointInfo]) *MockVectorSearchEndpointsInterface_ListEndpoints_Call { _c.Call.Return(_a0) return _c } -func (_c *MockVectorSearchEndpointsInterface_ListEndpoints_Call) RunAndReturn(run func(context.Context, vectorsearch.ListEndpointsRequest) *listing.PaginatingIterator[vectorsearch.ListEndpointsRequest, *vectorsearch.ListEndpointResponse, vectorsearch.EndpointInfo]) *MockVectorSearchEndpointsInterface_ListEndpoints_Call { +func (_c *MockVectorSearchEndpointsInterface_ListEndpoints_Call) RunAndReturn(run func(context.Context, vectorsearch.ListEndpointsRequest) listing.Iterator[vectorsearch.EndpointInfo]) *MockVectorSearchEndpointsInterface_ListEndpoints_Call { _c.Call.Return(run) return _c } diff --git a/experimental/mocks/service/vectorsearch/mock_vector_search_indexes_interface.go b/experimental/mocks/service/vectorsearch/mock_vector_search_indexes_interface.go index 787d73537..f67bf6ac5 100644 --- a/experimental/mocks/service/vectorsearch/mock_vector_search_indexes_interface.go +++ b/experimental/mocks/service/vectorsearch/mock_vector_search_indexes_interface.go @@ -402,19 +402,19 @@ func (_c *MockVectorSearchIndexesInterface_Impl_Call) RunAndReturn(run func() ve } // ListIndexes provides a mock function with given fields: ctx, request -func (_m *MockVectorSearchIndexesInterface) ListIndexes(ctx context.Context, request vectorsearch.ListIndexesRequest) *listing.PaginatingIterator[vectorsearch.ListIndexesRequest, *vectorsearch.ListVectorIndexesResponse, vectorsearch.MiniVectorIndex] { +func (_m *MockVectorSearchIndexesInterface) ListIndexes(ctx context.Context, request vectorsearch.ListIndexesRequest) listing.Iterator[vectorsearch.MiniVectorIndex] { ret := _m.Called(ctx, request) if len(ret) == 0 { panic("no return value specified for ListIndexes") } - var r0 *listing.PaginatingIterator[vectorsearch.ListIndexesRequest, *vectorsearch.ListVectorIndexesResponse, vectorsearch.MiniVectorIndex] - if rf, ok := ret.Get(0).(func(context.Context, vectorsearch.ListIndexesRequest) *listing.PaginatingIterator[vectorsearch.ListIndexesRequest, *vectorsearch.ListVectorIndexesResponse, vectorsearch.MiniVectorIndex]); ok { + var r0 listing.Iterator[vectorsearch.MiniVectorIndex] + if rf, ok := ret.Get(0).(func(context.Context, vectorsearch.ListIndexesRequest) listing.Iterator[vectorsearch.MiniVectorIndex]); ok { r0 = rf(ctx, request) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.PaginatingIterator[vectorsearch.ListIndexesRequest, *vectorsearch.ListVectorIndexesResponse, vectorsearch.MiniVectorIndex]) + r0 = ret.Get(0).(listing.Iterator[vectorsearch.MiniVectorIndex]) } } @@ -440,12 +440,12 @@ func (_c *MockVectorSearchIndexesInterface_ListIndexes_Call) Run(run func(ctx co return _c } -func (_c *MockVectorSearchIndexesInterface_ListIndexes_Call) Return(_a0 *listing.PaginatingIterator[vectorsearch.ListIndexesRequest, *vectorsearch.ListVectorIndexesResponse, vectorsearch.MiniVectorIndex]) *MockVectorSearchIndexesInterface_ListIndexes_Call { +func (_c *MockVectorSearchIndexesInterface_ListIndexes_Call) Return(_a0 listing.Iterator[vectorsearch.MiniVectorIndex]) *MockVectorSearchIndexesInterface_ListIndexes_Call { _c.Call.Return(_a0) return _c } -func (_c *MockVectorSearchIndexesInterface_ListIndexes_Call) RunAndReturn(run func(context.Context, vectorsearch.ListIndexesRequest) *listing.PaginatingIterator[vectorsearch.ListIndexesRequest, *vectorsearch.ListVectorIndexesResponse, vectorsearch.MiniVectorIndex]) *MockVectorSearchIndexesInterface_ListIndexes_Call { +func (_c *MockVectorSearchIndexesInterface_ListIndexes_Call) RunAndReturn(run func(context.Context, vectorsearch.ListIndexesRequest) listing.Iterator[vectorsearch.MiniVectorIndex]) *MockVectorSearchIndexesInterface_ListIndexes_Call { _c.Call.Return(run) return _c } diff --git a/experimental/mocks/service/workspace/mock_git_credentials_interface.go b/experimental/mocks/service/workspace/mock_git_credentials_interface.go index 8422051f1..0d3bb6abb 100644 --- a/experimental/mocks/service/workspace/mock_git_credentials_interface.go +++ b/experimental/mocks/service/workspace/mock_git_credentials_interface.go @@ -460,19 +460,19 @@ func (_c *MockGitCredentialsInterface_Impl_Call) RunAndReturn(run func() workspa } // List provides a mock function with given fields: ctx -func (_m *MockGitCredentialsInterface) List(ctx context.Context) *listing.PaginatingIterator[struct{}, *workspace.GetCredentialsResponse, workspace.CredentialInfo] { +func (_m *MockGitCredentialsInterface) List(ctx context.Context) listing.Iterator[workspace.CredentialInfo] { ret := _m.Called(ctx) if len(ret) == 0 { panic("no return value specified for List") } - var r0 *listing.PaginatingIterator[struct{}, *workspace.GetCredentialsResponse, workspace.CredentialInfo] - if rf, ok := ret.Get(0).(func(context.Context) *listing.PaginatingIterator[struct{}, *workspace.GetCredentialsResponse, workspace.CredentialInfo]); ok { + var r0 listing.Iterator[workspace.CredentialInfo] + if rf, ok := ret.Get(0).(func(context.Context) listing.Iterator[workspace.CredentialInfo]); ok { r0 = rf(ctx) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.PaginatingIterator[struct{}, *workspace.GetCredentialsResponse, workspace.CredentialInfo]) + r0 = ret.Get(0).(listing.Iterator[workspace.CredentialInfo]) } } @@ -497,12 +497,12 @@ func (_c *MockGitCredentialsInterface_List_Call) Run(run func(ctx context.Contex return _c } -func (_c *MockGitCredentialsInterface_List_Call) Return(_a0 *listing.PaginatingIterator[struct{}, *workspace.GetCredentialsResponse, workspace.CredentialInfo]) *MockGitCredentialsInterface_List_Call { +func (_c *MockGitCredentialsInterface_List_Call) Return(_a0 listing.Iterator[workspace.CredentialInfo]) *MockGitCredentialsInterface_List_Call { _c.Call.Return(_a0) return _c } -func (_c *MockGitCredentialsInterface_List_Call) RunAndReturn(run func(context.Context) *listing.PaginatingIterator[struct{}, *workspace.GetCredentialsResponse, workspace.CredentialInfo]) *MockGitCredentialsInterface_List_Call { +func (_c *MockGitCredentialsInterface_List_Call) RunAndReturn(run func(context.Context) listing.Iterator[workspace.CredentialInfo]) *MockGitCredentialsInterface_List_Call { _c.Call.Return(run) return _c } diff --git a/experimental/mocks/service/workspace/mock_repos_interface.go b/experimental/mocks/service/workspace/mock_repos_interface.go index 3d2f0a714..955563838 100644 --- a/experimental/mocks/service/workspace/mock_repos_interface.go +++ b/experimental/mocks/service/workspace/mock_repos_interface.go @@ -638,19 +638,19 @@ func (_c *MockReposInterface_Impl_Call) RunAndReturn(run func() workspace.ReposS } // List provides a mock function with given fields: ctx, request -func (_m *MockReposInterface) List(ctx context.Context, request workspace.ListReposRequest) *listing.PaginatingIterator[workspace.ListReposRequest, *workspace.ListReposResponse, workspace.RepoInfo] { +func (_m *MockReposInterface) List(ctx context.Context, request workspace.ListReposRequest) listing.Iterator[workspace.RepoInfo] { ret := _m.Called(ctx, request) if len(ret) == 0 { panic("no return value specified for List") } - var r0 *listing.PaginatingIterator[workspace.ListReposRequest, *workspace.ListReposResponse, workspace.RepoInfo] - if rf, ok := ret.Get(0).(func(context.Context, workspace.ListReposRequest) *listing.PaginatingIterator[workspace.ListReposRequest, *workspace.ListReposResponse, workspace.RepoInfo]); ok { + var r0 listing.Iterator[workspace.RepoInfo] + if rf, ok := ret.Get(0).(func(context.Context, workspace.ListReposRequest) listing.Iterator[workspace.RepoInfo]); ok { r0 = rf(ctx, request) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.PaginatingIterator[workspace.ListReposRequest, *workspace.ListReposResponse, workspace.RepoInfo]) + r0 = ret.Get(0).(listing.Iterator[workspace.RepoInfo]) } } @@ -676,12 +676,12 @@ func (_c *MockReposInterface_List_Call) Run(run func(ctx context.Context, reques return _c } -func (_c *MockReposInterface_List_Call) Return(_a0 *listing.PaginatingIterator[workspace.ListReposRequest, *workspace.ListReposResponse, workspace.RepoInfo]) *MockReposInterface_List_Call { +func (_c *MockReposInterface_List_Call) Return(_a0 listing.Iterator[workspace.RepoInfo]) *MockReposInterface_List_Call { _c.Call.Return(_a0) return _c } -func (_c *MockReposInterface_List_Call) RunAndReturn(run func(context.Context, workspace.ListReposRequest) *listing.PaginatingIterator[workspace.ListReposRequest, *workspace.ListReposResponse, workspace.RepoInfo]) *MockReposInterface_List_Call { +func (_c *MockReposInterface_List_Call) RunAndReturn(run func(context.Context, workspace.ListReposRequest) listing.Iterator[workspace.RepoInfo]) *MockReposInterface_List_Call { _c.Call.Return(run) return _c } diff --git a/experimental/mocks/service/workspace/mock_secrets_interface.go b/experimental/mocks/service/workspace/mock_secrets_interface.go index 48f18adc0..c74633ed5 100644 --- a/experimental/mocks/service/workspace/mock_secrets_interface.go +++ b/experimental/mocks/service/workspace/mock_secrets_interface.go @@ -425,19 +425,19 @@ func (_c *MockSecretsInterface_Impl_Call) RunAndReturn(run func() workspace.Secr } // ListAcls provides a mock function with given fields: ctx, request -func (_m *MockSecretsInterface) ListAcls(ctx context.Context, request workspace.ListAclsRequest) *listing.PaginatingIterator[workspace.ListAclsRequest, *workspace.ListAclsResponse, workspace.AclItem] { +func (_m *MockSecretsInterface) ListAcls(ctx context.Context, request workspace.ListAclsRequest) listing.Iterator[workspace.AclItem] { ret := _m.Called(ctx, request) if len(ret) == 0 { panic("no return value specified for ListAcls") } - var r0 *listing.PaginatingIterator[workspace.ListAclsRequest, *workspace.ListAclsResponse, workspace.AclItem] - if rf, ok := ret.Get(0).(func(context.Context, workspace.ListAclsRequest) *listing.PaginatingIterator[workspace.ListAclsRequest, *workspace.ListAclsResponse, workspace.AclItem]); ok { + var r0 listing.Iterator[workspace.AclItem] + if rf, ok := ret.Get(0).(func(context.Context, workspace.ListAclsRequest) listing.Iterator[workspace.AclItem]); ok { r0 = rf(ctx, request) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.PaginatingIterator[workspace.ListAclsRequest, *workspace.ListAclsResponse, workspace.AclItem]) + r0 = ret.Get(0).(listing.Iterator[workspace.AclItem]) } } @@ -463,12 +463,12 @@ func (_c *MockSecretsInterface_ListAcls_Call) Run(run func(ctx context.Context, return _c } -func (_c *MockSecretsInterface_ListAcls_Call) Return(_a0 *listing.PaginatingIterator[workspace.ListAclsRequest, *workspace.ListAclsResponse, workspace.AclItem]) *MockSecretsInterface_ListAcls_Call { +func (_c *MockSecretsInterface_ListAcls_Call) Return(_a0 listing.Iterator[workspace.AclItem]) *MockSecretsInterface_ListAcls_Call { _c.Call.Return(_a0) return _c } -func (_c *MockSecretsInterface_ListAcls_Call) RunAndReturn(run func(context.Context, workspace.ListAclsRequest) *listing.PaginatingIterator[workspace.ListAclsRequest, *workspace.ListAclsResponse, workspace.AclItem]) *MockSecretsInterface_ListAcls_Call { +func (_c *MockSecretsInterface_ListAcls_Call) RunAndReturn(run func(context.Context, workspace.ListAclsRequest) listing.Iterator[workspace.AclItem]) *MockSecretsInterface_ListAcls_Call { _c.Call.Return(run) return _c } @@ -592,19 +592,19 @@ func (_c *MockSecretsInterface_ListAclsByScope_Call) RunAndReturn(run func(conte } // ListScopes provides a mock function with given fields: ctx -func (_m *MockSecretsInterface) ListScopes(ctx context.Context) *listing.PaginatingIterator[struct{}, *workspace.ListScopesResponse, workspace.SecretScope] { +func (_m *MockSecretsInterface) ListScopes(ctx context.Context) listing.Iterator[workspace.SecretScope] { ret := _m.Called(ctx) if len(ret) == 0 { panic("no return value specified for ListScopes") } - var r0 *listing.PaginatingIterator[struct{}, *workspace.ListScopesResponse, workspace.SecretScope] - if rf, ok := ret.Get(0).(func(context.Context) *listing.PaginatingIterator[struct{}, *workspace.ListScopesResponse, workspace.SecretScope]); ok { + var r0 listing.Iterator[workspace.SecretScope] + if rf, ok := ret.Get(0).(func(context.Context) listing.Iterator[workspace.SecretScope]); ok { r0 = rf(ctx) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.PaginatingIterator[struct{}, *workspace.ListScopesResponse, workspace.SecretScope]) + r0 = ret.Get(0).(listing.Iterator[workspace.SecretScope]) } } @@ -629,12 +629,12 @@ func (_c *MockSecretsInterface_ListScopes_Call) Run(run func(ctx context.Context return _c } -func (_c *MockSecretsInterface_ListScopes_Call) Return(_a0 *listing.PaginatingIterator[struct{}, *workspace.ListScopesResponse, workspace.SecretScope]) *MockSecretsInterface_ListScopes_Call { +func (_c *MockSecretsInterface_ListScopes_Call) Return(_a0 listing.Iterator[workspace.SecretScope]) *MockSecretsInterface_ListScopes_Call { _c.Call.Return(_a0) return _c } -func (_c *MockSecretsInterface_ListScopes_Call) RunAndReturn(run func(context.Context) *listing.PaginatingIterator[struct{}, *workspace.ListScopesResponse, workspace.SecretScope]) *MockSecretsInterface_ListScopes_Call { +func (_c *MockSecretsInterface_ListScopes_Call) RunAndReturn(run func(context.Context) listing.Iterator[workspace.SecretScope]) *MockSecretsInterface_ListScopes_Call { _c.Call.Return(run) return _c } @@ -698,19 +698,19 @@ func (_c *MockSecretsInterface_ListScopesAll_Call) RunAndReturn(run func(context } // ListSecrets provides a mock function with given fields: ctx, request -func (_m *MockSecretsInterface) ListSecrets(ctx context.Context, request workspace.ListSecretsRequest) *listing.PaginatingIterator[workspace.ListSecretsRequest, *workspace.ListSecretsResponse, workspace.SecretMetadata] { +func (_m *MockSecretsInterface) ListSecrets(ctx context.Context, request workspace.ListSecretsRequest) listing.Iterator[workspace.SecretMetadata] { ret := _m.Called(ctx, request) if len(ret) == 0 { panic("no return value specified for ListSecrets") } - var r0 *listing.PaginatingIterator[workspace.ListSecretsRequest, *workspace.ListSecretsResponse, workspace.SecretMetadata] - if rf, ok := ret.Get(0).(func(context.Context, workspace.ListSecretsRequest) *listing.PaginatingIterator[workspace.ListSecretsRequest, *workspace.ListSecretsResponse, workspace.SecretMetadata]); ok { + var r0 listing.Iterator[workspace.SecretMetadata] + if rf, ok := ret.Get(0).(func(context.Context, workspace.ListSecretsRequest) listing.Iterator[workspace.SecretMetadata]); ok { r0 = rf(ctx, request) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.PaginatingIterator[workspace.ListSecretsRequest, *workspace.ListSecretsResponse, workspace.SecretMetadata]) + r0 = ret.Get(0).(listing.Iterator[workspace.SecretMetadata]) } } @@ -736,12 +736,12 @@ func (_c *MockSecretsInterface_ListSecrets_Call) Run(run func(ctx context.Contex return _c } -func (_c *MockSecretsInterface_ListSecrets_Call) Return(_a0 *listing.PaginatingIterator[workspace.ListSecretsRequest, *workspace.ListSecretsResponse, workspace.SecretMetadata]) *MockSecretsInterface_ListSecrets_Call { +func (_c *MockSecretsInterface_ListSecrets_Call) Return(_a0 listing.Iterator[workspace.SecretMetadata]) *MockSecretsInterface_ListSecrets_Call { _c.Call.Return(_a0) return _c } -func (_c *MockSecretsInterface_ListSecrets_Call) RunAndReturn(run func(context.Context, workspace.ListSecretsRequest) *listing.PaginatingIterator[workspace.ListSecretsRequest, *workspace.ListSecretsResponse, workspace.SecretMetadata]) *MockSecretsInterface_ListSecrets_Call { +func (_c *MockSecretsInterface_ListSecrets_Call) RunAndReturn(run func(context.Context, workspace.ListSecretsRequest) listing.Iterator[workspace.SecretMetadata]) *MockSecretsInterface_ListSecrets_Call { _c.Call.Return(run) return _c } diff --git a/experimental/mocks/service/workspace/mock_workspace_interface.go b/experimental/mocks/service/workspace/mock_workspace_interface.go index 437bdcb8d..646f66e3c 100644 --- a/experimental/mocks/service/workspace/mock_workspace_interface.go +++ b/experimental/mocks/service/workspace/mock_workspace_interface.go @@ -715,19 +715,19 @@ func (_c *MockWorkspaceInterface_Import_Call) RunAndReturn(run func(context.Cont } // List provides a mock function with given fields: ctx, request -func (_m *MockWorkspaceInterface) List(ctx context.Context, request workspace.ListWorkspaceRequest) *listing.PaginatingIterator[workspace.ListWorkspaceRequest, *workspace.ListResponse, workspace.ObjectInfo] { +func (_m *MockWorkspaceInterface) List(ctx context.Context, request workspace.ListWorkspaceRequest) listing.Iterator[workspace.ObjectInfo] { ret := _m.Called(ctx, request) if len(ret) == 0 { panic("no return value specified for List") } - var r0 *listing.PaginatingIterator[workspace.ListWorkspaceRequest, *workspace.ListResponse, workspace.ObjectInfo] - if rf, ok := ret.Get(0).(func(context.Context, workspace.ListWorkspaceRequest) *listing.PaginatingIterator[workspace.ListWorkspaceRequest, *workspace.ListResponse, workspace.ObjectInfo]); ok { + var r0 listing.Iterator[workspace.ObjectInfo] + if rf, ok := ret.Get(0).(func(context.Context, workspace.ListWorkspaceRequest) listing.Iterator[workspace.ObjectInfo]); ok { r0 = rf(ctx, request) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*listing.PaginatingIterator[workspace.ListWorkspaceRequest, *workspace.ListResponse, workspace.ObjectInfo]) + r0 = ret.Get(0).(listing.Iterator[workspace.ObjectInfo]) } } @@ -753,12 +753,12 @@ func (_c *MockWorkspaceInterface_List_Call) Run(run func(ctx context.Context, re return _c } -func (_c *MockWorkspaceInterface_List_Call) Return(_a0 *listing.PaginatingIterator[workspace.ListWorkspaceRequest, *workspace.ListResponse, workspace.ObjectInfo]) *MockWorkspaceInterface_List_Call { +func (_c *MockWorkspaceInterface_List_Call) Return(_a0 listing.Iterator[workspace.ObjectInfo]) *MockWorkspaceInterface_List_Call { _c.Call.Return(_a0) return _c } -func (_c *MockWorkspaceInterface_List_Call) RunAndReturn(run func(context.Context, workspace.ListWorkspaceRequest) *listing.PaginatingIterator[workspace.ListWorkspaceRequest, *workspace.ListResponse, workspace.ObjectInfo]) *MockWorkspaceInterface_List_Call { +func (_c *MockWorkspaceInterface_List_Call) RunAndReturn(run func(context.Context, workspace.ListWorkspaceRequest) listing.Iterator[workspace.ObjectInfo]) *MockWorkspaceInterface_List_Call { _c.Call.Return(run) return _c } diff --git a/service/billing/api.go b/service/billing/api.go index 9492d8398..fbad90253 100755 --- a/service/billing/api.go +++ b/service/billing/api.go @@ -126,7 +126,7 @@ type BudgetsInterface interface { // for each day that the budget is configured to include. // // This method is generated by Databricks SDK Code Generator. - List(ctx context.Context) *listing.PaginatingIterator[struct{}, *BudgetList, BudgetWithStatus] + List(ctx context.Context) listing.Iterator[BudgetWithStatus] // Get all budgets. // @@ -238,7 +238,7 @@ func (a *BudgetsAPI) GetByBudgetId(ctx context.Context, budgetId string) (*Wrapp // for each day that the budget is configured to include. // // This method is generated by Databricks SDK Code Generator. -func (a *BudgetsAPI) List(ctx context.Context) *listing.PaginatingIterator[struct{}, *BudgetList, BudgetWithStatus] { +func (a *BudgetsAPI) List(ctx context.Context) listing.Iterator[BudgetWithStatus] { request := struct{}{} getNextPage := func(ctx context.Context, req struct{}) (*BudgetList, error) { @@ -386,7 +386,7 @@ type LogDeliveryInterface interface { // specified by ID. // // This method is generated by Databricks SDK Code Generator. - List(ctx context.Context, request ListLogDeliveryRequest) *listing.PaginatingIterator[ListLogDeliveryRequest, *WrappedLogDeliveryConfigurations, LogDeliveryConfiguration] + List(ctx context.Context, request ListLogDeliveryRequest) listing.Iterator[LogDeliveryConfiguration] // Get all log delivery configurations. // @@ -568,7 +568,7 @@ func (a *LogDeliveryAPI) GetByLogDeliveryConfigurationId(ctx context.Context, lo // specified by ID. // // This method is generated by Databricks SDK Code Generator. -func (a *LogDeliveryAPI) List(ctx context.Context, request ListLogDeliveryRequest) *listing.PaginatingIterator[ListLogDeliveryRequest, *WrappedLogDeliveryConfigurations, LogDeliveryConfiguration] { +func (a *LogDeliveryAPI) List(ctx context.Context, request ListLogDeliveryRequest) listing.Iterator[LogDeliveryConfiguration] { getNextPage := func(ctx context.Context, req ListLogDeliveryRequest) (*WrappedLogDeliveryConfigurations, error) { ctx = useragent.InContext(ctx, "sdk-feature", "pagination") diff --git a/service/catalog/api.go b/service/catalog/api.go index bdd8f3bb9..7d3d5cadb 100755 --- a/service/catalog/api.go +++ b/service/catalog/api.go @@ -61,7 +61,7 @@ type AccountMetastoreAssignmentsInterface interface { // metastore. // // This method is generated by Databricks SDK Code Generator. - List(ctx context.Context, request ListAccountMetastoreAssignmentsRequest) *listing.PaginatingIterator[ListAccountMetastoreAssignmentsRequest, *ListAccountMetastoreAssignmentsResponse, int64] + List(ctx context.Context, request ListAccountMetastoreAssignmentsRequest) listing.Iterator[int64] // Get all workspaces assigned to a metastore. // @@ -167,7 +167,7 @@ func (a *AccountMetastoreAssignmentsAPI) GetByWorkspaceId(ctx context.Context, w // metastore. // // This method is generated by Databricks SDK Code Generator. -func (a *AccountMetastoreAssignmentsAPI) List(ctx context.Context, request ListAccountMetastoreAssignmentsRequest) *listing.PaginatingIterator[ListAccountMetastoreAssignmentsRequest, *ListAccountMetastoreAssignmentsResponse, int64] { +func (a *AccountMetastoreAssignmentsAPI) List(ctx context.Context, request ListAccountMetastoreAssignmentsRequest) listing.Iterator[int64] { getNextPage := func(ctx context.Context, req ListAccountMetastoreAssignmentsRequest) (*ListAccountMetastoreAssignmentsResponse, error) { ctx = useragent.InContext(ctx, "sdk-feature", "pagination") @@ -254,7 +254,7 @@ type AccountMetastoresInterface interface { // Gets all Unity Catalog metastores associated with an account specified by ID. // // This method is generated by Databricks SDK Code Generator. - List(ctx context.Context) *listing.PaginatingIterator[struct{}, *ListMetastoresResponse, MetastoreInfo] + List(ctx context.Context) listing.Iterator[MetastoreInfo] // Get all metastores associated with an account. // @@ -343,7 +343,7 @@ func (a *AccountMetastoresAPI) GetByMetastoreId(ctx context.Context, metastoreId // Gets all Unity Catalog metastores associated with an account specified by ID. // // This method is generated by Databricks SDK Code Generator. -func (a *AccountMetastoresAPI) List(ctx context.Context) *listing.PaginatingIterator[struct{}, *ListMetastoresResponse, MetastoreInfo] { +func (a *AccountMetastoresAPI) List(ctx context.Context) listing.Iterator[MetastoreInfo] { request := struct{}{} getNextPage := func(ctx context.Context, req struct{}) (*ListMetastoresResponse, error) { @@ -767,7 +767,7 @@ type CatalogsInterface interface { // the array. // // This method is generated by Databricks SDK Code Generator. - List(ctx context.Context) *listing.PaginatingIterator[struct{}, *ListCatalogsResponse, CatalogInfo] + List(ctx context.Context) listing.Iterator[CatalogInfo] // List catalogs. // @@ -879,7 +879,7 @@ func (a *CatalogsAPI) GetByName(ctx context.Context, name string) (*CatalogInfo, // the array. // // This method is generated by Databricks SDK Code Generator. -func (a *CatalogsAPI) List(ctx context.Context) *listing.PaginatingIterator[struct{}, *ListCatalogsResponse, CatalogInfo] { +func (a *CatalogsAPI) List(ctx context.Context) listing.Iterator[CatalogInfo] { request := struct{}{} getNextPage := func(ctx context.Context, req struct{}) (*ListCatalogsResponse, error) { @@ -965,7 +965,7 @@ type ConnectionsInterface interface { // List all connections. // // This method is generated by Databricks SDK Code Generator. - List(ctx context.Context) *listing.PaginatingIterator[struct{}, *ListConnectionsResponse, ConnectionInfo] + List(ctx context.Context) listing.Iterator[ConnectionInfo] // List connections. // @@ -1085,7 +1085,7 @@ func (a *ConnectionsAPI) GetByNameArg(ctx context.Context, nameArg string) (*Con // List all connections. // // This method is generated by Databricks SDK Code Generator. -func (a *ConnectionsAPI) List(ctx context.Context) *listing.PaginatingIterator[struct{}, *ListConnectionsResponse, ConnectionInfo] { +func (a *ConnectionsAPI) List(ctx context.Context) listing.Iterator[ConnectionInfo] { request := struct{}{} getNextPage := func(ctx context.Context, req struct{}) (*ListConnectionsResponse, error) { @@ -1227,7 +1227,7 @@ type ExternalLocationsInterface interface { // ordered by their name. // // This method is generated by Databricks SDK Code Generator. - List(ctx context.Context, request ListExternalLocationsRequest) *listing.PaginatingIterator[ListExternalLocationsRequest, *ListExternalLocationsResponse, ExternalLocationInfo] + List(ctx context.Context, request ListExternalLocationsRequest) listing.Iterator[ExternalLocationInfo] // List external locations. // @@ -1347,7 +1347,7 @@ func (a *ExternalLocationsAPI) GetByName(ctx context.Context, name string) (*Ext // ordered by their name. // // This method is generated by Databricks SDK Code Generator. -func (a *ExternalLocationsAPI) List(ctx context.Context, request ListExternalLocationsRequest) *listing.PaginatingIterator[ListExternalLocationsRequest, *ListExternalLocationsResponse, ExternalLocationInfo] { +func (a *ExternalLocationsAPI) List(ctx context.Context, request ListExternalLocationsRequest) listing.Iterator[ExternalLocationInfo] { getNextPage := func(ctx context.Context, req ListExternalLocationsRequest) (*ListExternalLocationsResponse, error) { ctx = useragent.InContext(ctx, "sdk-feature", "pagination") @@ -1471,7 +1471,7 @@ type FunctionsInterface interface { // ordered by their name. // // This method is generated by Databricks SDK Code Generator. - List(ctx context.Context, request ListFunctionsRequest) *listing.PaginatingIterator[ListFunctionsRequest, *ListFunctionsResponse, FunctionInfo] + List(ctx context.Context, request ListFunctionsRequest) listing.Iterator[FunctionInfo] // List functions. // @@ -1622,7 +1622,7 @@ func (a *FunctionsAPI) GetByName(ctx context.Context, name string) (*FunctionInf // ordered by their name. // // This method is generated by Databricks SDK Code Generator. -func (a *FunctionsAPI) List(ctx context.Context, request ListFunctionsRequest) *listing.PaginatingIterator[ListFunctionsRequest, *ListFunctionsResponse, FunctionInfo] { +func (a *FunctionsAPI) List(ctx context.Context, request ListFunctionsRequest) listing.Iterator[FunctionInfo] { getNextPage := func(ctx context.Context, req ListFunctionsRequest) (*ListFunctionsResponse, error) { ctx = useragent.InContext(ctx, "sdk-feature", "pagination") @@ -1879,7 +1879,7 @@ type MetastoresInterface interface { // specific ordering of the elements in the array. // // This method is generated by Databricks SDK Code Generator. - List(ctx context.Context) *listing.PaginatingIterator[struct{}, *ListMetastoresResponse, MetastoreInfo] + List(ctx context.Context) listing.Iterator[MetastoreInfo] // List metastores. // @@ -2051,7 +2051,7 @@ func (a *MetastoresAPI) GetById(ctx context.Context, id string) (*MetastoreInfo, // specific ordering of the elements in the array. // // This method is generated by Databricks SDK Code Generator. -func (a *MetastoresAPI) List(ctx context.Context) *listing.PaginatingIterator[struct{}, *ListMetastoresResponse, MetastoreInfo] { +func (a *MetastoresAPI) List(ctx context.Context) listing.Iterator[MetastoreInfo] { request := struct{}{} getNextPage := func(ctx context.Context, req struct{}) (*ListMetastoresResponse, error) { @@ -2267,7 +2267,7 @@ type ModelVersionsInterface interface { // There is no guarantee of a specific ordering of the elements in the response. // // This method is generated by Databricks SDK Code Generator. - List(ctx context.Context, request ListModelVersionsRequest) *listing.PaginatingIterator[ListModelVersionsRequest, *ListModelVersionsResponse, ModelVersionInfo] + List(ctx context.Context, request ListModelVersionsRequest) listing.Iterator[ModelVersionInfo] // List Model Versions. // @@ -2450,7 +2450,7 @@ func (a *ModelVersionsAPI) GetByAliasByFullNameAndAlias(ctx context.Context, ful // There is no guarantee of a specific ordering of the elements in the response. // // This method is generated by Databricks SDK Code Generator. -func (a *ModelVersionsAPI) List(ctx context.Context, request ListModelVersionsRequest) *listing.PaginatingIterator[ListModelVersionsRequest, *ListModelVersionsResponse, ModelVersionInfo] { +func (a *ModelVersionsAPI) List(ctx context.Context, request ListModelVersionsRequest) listing.Iterator[ModelVersionInfo] { getNextPage := func(ctx context.Context, req ListModelVersionsRequest) (*ListModelVersionsResponse, error) { ctx = useragent.InContext(ctx, "sdk-feature", "pagination") @@ -2634,7 +2634,7 @@ type RegisteredModelsInterface interface { // There is no guarantee of a specific ordering of the elements in the response. // // This method is generated by Databricks SDK Code Generator. - List(ctx context.Context, request ListRegisteredModelsRequest) *listing.PaginatingIterator[ListRegisteredModelsRequest, *ListRegisteredModelsResponse, RegisteredModelInfo] + List(ctx context.Context, request ListRegisteredModelsRequest) listing.Iterator[RegisteredModelInfo] // List Registered Models. // @@ -2868,7 +2868,7 @@ func (a *RegisteredModelsAPI) GetByFullName(ctx context.Context, fullName string // There is no guarantee of a specific ordering of the elements in the response. // // This method is generated by Databricks SDK Code Generator. -func (a *RegisteredModelsAPI) List(ctx context.Context, request ListRegisteredModelsRequest) *listing.PaginatingIterator[ListRegisteredModelsRequest, *ListRegisteredModelsResponse, RegisteredModelInfo] { +func (a *RegisteredModelsAPI) List(ctx context.Context, request ListRegisteredModelsRequest) listing.Iterator[RegisteredModelInfo] { getNextPage := func(ctx context.Context, req ListRegisteredModelsRequest) (*ListRegisteredModelsResponse, error) { ctx = useragent.InContext(ctx, "sdk-feature", "pagination") @@ -3048,7 +3048,7 @@ type SchemasInterface interface { // name. // // This method is generated by Databricks SDK Code Generator. - List(ctx context.Context, request ListSchemasRequest) *listing.PaginatingIterator[ListSchemasRequest, *ListSchemasResponse, SchemaInfo] + List(ctx context.Context, request ListSchemasRequest) listing.Iterator[SchemaInfo] // List schemas. // @@ -3182,7 +3182,7 @@ func (a *SchemasAPI) GetByFullName(ctx context.Context, fullName string) (*Schem // name. // // This method is generated by Databricks SDK Code Generator. -func (a *SchemasAPI) List(ctx context.Context, request ListSchemasRequest) *listing.PaginatingIterator[ListSchemasRequest, *ListSchemasResponse, SchemaInfo] { +func (a *SchemasAPI) List(ctx context.Context, request ListSchemasRequest) listing.Iterator[SchemaInfo] { getNextPage := func(ctx context.Context, req ListSchemasRequest) (*ListSchemasResponse, error) { ctx = useragent.InContext(ctx, "sdk-feature", "pagination") @@ -3338,7 +3338,7 @@ type StorageCredentialsInterface interface { // elements are ordered by their name. // // This method is generated by Databricks SDK Code Generator. - List(ctx context.Context, request ListStorageCredentialsRequest) *listing.PaginatingIterator[ListStorageCredentialsRequest, *ListStorageCredentialsResponse, StorageCredentialInfo] + List(ctx context.Context, request ListStorageCredentialsRequest) listing.Iterator[StorageCredentialInfo] // List credentials. // @@ -3479,7 +3479,7 @@ func (a *StorageCredentialsAPI) GetByName(ctx context.Context, name string) (*St // elements are ordered by their name. // // This method is generated by Databricks SDK Code Generator. -func (a *StorageCredentialsAPI) List(ctx context.Context, request ListStorageCredentialsRequest) *listing.PaginatingIterator[ListStorageCredentialsRequest, *ListStorageCredentialsResponse, StorageCredentialInfo] { +func (a *StorageCredentialsAPI) List(ctx context.Context, request ListStorageCredentialsRequest) listing.Iterator[StorageCredentialInfo] { getNextPage := func(ctx context.Context, req ListStorageCredentialsRequest) (*ListStorageCredentialsResponse, error) { ctx = useragent.InContext(ctx, "sdk-feature", "pagination") @@ -3603,7 +3603,7 @@ type SystemSchemasInterface interface { // account admin or a metastore admin. // // This method is generated by Databricks SDK Code Generator. - List(ctx context.Context, request ListSystemSchemasRequest) *listing.PaginatingIterator[ListSystemSchemasRequest, *ListSystemSchemasResponse, SystemSchemaInfo] + List(ctx context.Context, request ListSystemSchemasRequest) listing.Iterator[SystemSchemaInfo] // List system schemas. // @@ -3684,7 +3684,7 @@ func (a *SystemSchemasAPI) Enable(ctx context.Context, request EnableRequest) er // account admin or a metastore admin. // // This method is generated by Databricks SDK Code Generator. -func (a *SystemSchemasAPI) List(ctx context.Context, request ListSystemSchemasRequest) *listing.PaginatingIterator[ListSystemSchemasRequest, *ListSystemSchemasResponse, SystemSchemaInfo] { +func (a *SystemSchemasAPI) List(ctx context.Context, request ListSystemSchemasRequest) listing.Iterator[SystemSchemaInfo] { getNextPage := func(ctx context.Context, req ListSystemSchemasRequest) (*ListSystemSchemasResponse, error) { ctx = useragent.InContext(ctx, "sdk-feature", "pagination") @@ -3919,7 +3919,7 @@ type TablesInterface interface { // guarantee of a specific ordering of the elements in the array. // // This method is generated by Databricks SDK Code Generator. - List(ctx context.Context, request ListTablesRequest) *listing.PaginatingIterator[ListTablesRequest, *ListTablesResponse, TableInfo] + List(ctx context.Context, request ListTablesRequest) listing.Iterator[TableInfo] // List tables. // @@ -3966,7 +3966,7 @@ type TablesInterface interface { // There is no guarantee of a specific ordering of the elements in the array. // // This method is generated by Databricks SDK Code Generator. - ListSummaries(ctx context.Context, request ListSummariesRequest) *listing.PaginatingIterator[ListSummariesRequest, *ListTableSummariesResponse, TableSummary] + ListSummaries(ctx context.Context, request ListSummariesRequest) listing.Iterator[TableSummary] // List table summaries. // @@ -4091,7 +4091,7 @@ func (a *TablesAPI) GetByFullName(ctx context.Context, fullName string) (*TableI // guarantee of a specific ordering of the elements in the array. // // This method is generated by Databricks SDK Code Generator. -func (a *TablesAPI) List(ctx context.Context, request ListTablesRequest) *listing.PaginatingIterator[ListTablesRequest, *ListTablesResponse, TableInfo] { +func (a *TablesAPI) List(ctx context.Context, request ListTablesRequest) listing.Iterator[TableInfo] { getNextPage := func(ctx context.Context, req ListTablesRequest) (*ListTablesResponse, error) { ctx = useragent.InContext(ctx, "sdk-feature", "pagination") @@ -4199,7 +4199,7 @@ func (a *TablesAPI) GetByName(ctx context.Context, name string) (*TableInfo, err // There is no guarantee of a specific ordering of the elements in the array. // // This method is generated by Databricks SDK Code Generator. -func (a *TablesAPI) ListSummaries(ctx context.Context, request ListSummariesRequest) *listing.PaginatingIterator[ListSummariesRequest, *ListTableSummariesResponse, TableSummary] { +func (a *TablesAPI) ListSummaries(ctx context.Context, request ListSummariesRequest) listing.Iterator[TableSummary] { getNextPage := func(ctx context.Context, req ListSummariesRequest) (*ListTableSummariesResponse, error) { ctx = useragent.InContext(ctx, "sdk-feature", "pagination") @@ -4322,7 +4322,7 @@ type VolumesInterface interface { // There is no guarantee of a specific ordering of the elements in the array. // // This method is generated by Databricks SDK Code Generator. - List(ctx context.Context, request ListVolumesRequest) *listing.PaginatingIterator[ListVolumesRequest, *ListVolumesResponseContent, VolumeInfo] + List(ctx context.Context, request ListVolumesRequest) listing.Iterator[VolumeInfo] // List Volumes. // @@ -4494,7 +4494,7 @@ func (a *VolumesAPI) DeleteByFullNameArg(ctx context.Context, fullNameArg string // There is no guarantee of a specific ordering of the elements in the array. // // This method is generated by Databricks SDK Code Generator. -func (a *VolumesAPI) List(ctx context.Context, request ListVolumesRequest) *listing.PaginatingIterator[ListVolumesRequest, *ListVolumesResponseContent, VolumeInfo] { +func (a *VolumesAPI) List(ctx context.Context, request ListVolumesRequest) listing.Iterator[VolumeInfo] { getNextPage := func(ctx context.Context, req ListVolumesRequest) (*ListVolumesResponseContent, error) { ctx = useragent.InContext(ctx, "sdk-feature", "pagination") diff --git a/service/compute/api.go b/service/compute/api.go index 98467652c..c59ca51f7 100755 --- a/service/compute/api.go +++ b/service/compute/api.go @@ -86,7 +86,7 @@ type ClusterPoliciesInterface interface { // Returns a list of policies accessible by the requesting user. // // This method is generated by Databricks SDK Code Generator. - List(ctx context.Context, request ListClusterPoliciesRequest) *listing.PaginatingIterator[ListClusterPoliciesRequest, *ListPoliciesResponse, Policy] + List(ctx context.Context, request ListClusterPoliciesRequest) listing.Iterator[Policy] // List cluster policies. // @@ -267,7 +267,7 @@ func (a *ClusterPoliciesAPI) GetPermissionsByClusterPolicyId(ctx context.Context // Returns a list of policies accessible by the requesting user. // // This method is generated by Databricks SDK Code Generator. -func (a *ClusterPoliciesAPI) List(ctx context.Context, request ListClusterPoliciesRequest) *listing.PaginatingIterator[ListClusterPoliciesRequest, *ListPoliciesResponse, Policy] { +func (a *ClusterPoliciesAPI) List(ctx context.Context, request ListClusterPoliciesRequest) listing.Iterator[Policy] { getNextPage := func(ctx context.Context, req ListClusterPoliciesRequest) (*ListPoliciesResponse, error) { ctx = useragent.InContext(ctx, "sdk-feature", "pagination") @@ -415,7 +415,7 @@ type ClustersInterface interface { // asynchronously. Once the termination has completed, the cluster will be in a // `TERMINATED` state. If the cluster is already in a `TERMINATING` or // `TERMINATED` state, nothing will happen. - Delete(ctx context.Context, deleteCluster DeleteCluster) (*WaitGetClusterTerminated[any], error) + Delete(ctx context.Context, deleteCluster DeleteCluster) (*WaitGetClusterTerminated[struct{}], error) // Calls [ClustersAPIInterface.Delete] and waits to reach TERMINATED state // @@ -449,7 +449,7 @@ type ClustersInterface interface { // state will be rejected with an `INVALID_STATE` error code. // // Clusters created by the Databricks Jobs service cannot be edited. - Edit(ctx context.Context, editCluster EditCluster) (*WaitGetClusterRunning[any], error) + Edit(ctx context.Context, editCluster EditCluster) (*WaitGetClusterRunning[struct{}], error) // Calls [ClustersAPIInterface.Edit] and waits to reach RUNNING state // @@ -466,7 +466,7 @@ type ClustersInterface interface { // nparameters necessary to request the next page of events. // // This method is generated by Databricks SDK Code Generator. - Events(ctx context.Context, request GetEvents) *listing.PaginatingIterator[GetEvents, *GetEventsResponse, ClusterEvent] + Events(ctx context.Context, request GetEvents) listing.Iterator[ClusterEvent] // List cluster activity events. // @@ -524,7 +524,7 @@ type ClustersInterface interface { // terminated job clusters. // // This method is generated by Databricks SDK Code Generator. - List(ctx context.Context, request ListClustersRequest) *listing.PaginatingIterator[ListClustersRequest, *ListClustersResponse, ClusterDetails] + List(ctx context.Context, request ListClustersRequest) listing.Iterator[ClusterDetails] // List all clusters. // @@ -622,7 +622,7 @@ type ClustersInterface interface { // // Resizes a cluster to have a desired number of workers. This will fail unless // the cluster is in a `RUNNING` state. - Resize(ctx context.Context, resizeCluster ResizeCluster) (*WaitGetClusterRunning[any], error) + Resize(ctx context.Context, resizeCluster ResizeCluster) (*WaitGetClusterRunning[struct{}], error) // Calls [ClustersAPIInterface.Resize] and waits to reach RUNNING state // @@ -636,7 +636,7 @@ type ClustersInterface interface { // // Restarts a Spark cluster with the supplied ID. If the cluster is not // currently in a `RUNNING` state, nothing will happen. - Restart(ctx context.Context, restartCluster RestartCluster) (*WaitGetClusterRunning[any], error) + Restart(ctx context.Context, restartCluster RestartCluster) (*WaitGetClusterRunning[struct{}], error) // Calls [ClustersAPIInterface.Restart] and waits to reach RUNNING state // @@ -668,7 +668,7 @@ type ClustersInterface interface { // autoscaling cluster, the current cluster starts with the minimum number of // nodes. * If the cluster is not currently in a `TERMINATED` state, nothing // will happen. * Clusters launched to run a job cannot be started. - Start(ctx context.Context, startCluster StartCluster) (*WaitGetClusterRunning[any], error) + Start(ctx context.Context, startCluster StartCluster) (*WaitGetClusterRunning[struct{}], error) // Calls [ClustersAPIInterface.Start] and waits to reach RUNNING state // @@ -801,7 +801,7 @@ func (a *ClustersAPI) WaitGetClusterRunning(ctx context.Context, clusterId strin type WaitGetClusterRunning[R any] struct { Response *R ClusterId string `json:"cluster_id"` - poll func(time.Duration, func(*ClusterDetails)) (*ClusterDetails, error) + Poll func(time.Duration, func(*ClusterDetails)) (*ClusterDetails, error) callback func(*ClusterDetails) timeout time.Duration } @@ -814,12 +814,12 @@ func (w *WaitGetClusterRunning[R]) OnProgress(callback func(*ClusterDetails)) *W // Get the ClusterDetails with the default timeout of 20 minutes. func (w *WaitGetClusterRunning[R]) Get() (*ClusterDetails, error) { - return w.poll(w.timeout, w.callback) + return w.Poll(w.timeout, w.callback) } // Get the ClusterDetails with custom timeout. func (w *WaitGetClusterRunning[R]) GetWithTimeout(timeout time.Duration) (*ClusterDetails, error) { - return w.poll(timeout, w.callback) + return w.Poll(timeout, w.callback) } // WaitGetClusterTerminated repeatedly calls [ClustersAPI.Get] and waits to reach TERMINATED state @@ -855,7 +855,7 @@ func (a *ClustersAPI) WaitGetClusterTerminated(ctx context.Context, clusterId st type WaitGetClusterTerminated[R any] struct { Response *R ClusterId string `json:"cluster_id"` - poll func(time.Duration, func(*ClusterDetails)) (*ClusterDetails, error) + Poll func(time.Duration, func(*ClusterDetails)) (*ClusterDetails, error) callback func(*ClusterDetails) timeout time.Duration } @@ -868,12 +868,12 @@ func (w *WaitGetClusterTerminated[R]) OnProgress(callback func(*ClusterDetails)) // Get the ClusterDetails with the default timeout of 20 minutes. func (w *WaitGetClusterTerminated[R]) Get() (*ClusterDetails, error) { - return w.poll(w.timeout, w.callback) + return w.Poll(w.timeout, w.callback) } // Get the ClusterDetails with custom timeout. func (w *WaitGetClusterTerminated[R]) GetWithTimeout(timeout time.Duration) (*ClusterDetails, error) { - return w.poll(timeout, w.callback) + return w.Poll(timeout, w.callback) } // Change cluster owner. @@ -902,7 +902,7 @@ func (a *ClustersAPI) Create(ctx context.Context, createCluster CreateCluster) ( return &WaitGetClusterRunning[CreateClusterResponse]{ Response: createClusterResponse, ClusterId: createClusterResponse.ClusterId, - poll: func(timeout time.Duration, callback func(*ClusterDetails)) (*ClusterDetails, error) { + Poll: func(timeout time.Duration, callback func(*ClusterDetails)) (*ClusterDetails, error) { return a.WaitGetClusterRunning(ctx, createClusterResponse.ClusterId, timeout, callback) }, timeout: 20 * time.Minute, @@ -943,15 +943,15 @@ func (a *ClustersAPI) CreateAndWait(ctx context.Context, createCluster CreateClu // asynchronously. Once the termination has completed, the cluster will be in a // `TERMINATED` state. If the cluster is already in a `TERMINATING` or // `TERMINATED` state, nothing will happen. -func (a *ClustersAPI) Delete(ctx context.Context, deleteCluster DeleteCluster) (*WaitGetClusterTerminated[any], error) { +func (a *ClustersAPI) Delete(ctx context.Context, deleteCluster DeleteCluster) (*WaitGetClusterTerminated[struct{}], error) { err := a.impl.Delete(ctx, deleteCluster) if err != nil { return nil, err } - return &WaitGetClusterTerminated[any]{ + return &WaitGetClusterTerminated[struct{}]{ ClusterId: deleteCluster.ClusterId, - poll: func(timeout time.Duration, callback func(*ClusterDetails)) (*ClusterDetails, error) { + Poll: func(timeout time.Duration, callback func(*ClusterDetails)) (*ClusterDetails, error) { return a.WaitGetClusterTerminated(ctx, deleteCluster.ClusterId, timeout, callback) }, timeout: 20 * time.Minute, @@ -1018,15 +1018,15 @@ func (a *ClustersAPI) DeleteByClusterIdAndWait(ctx context.Context, clusterId st // state will be rejected with an `INVALID_STATE` error code. // // Clusters created by the Databricks Jobs service cannot be edited. -func (a *ClustersAPI) Edit(ctx context.Context, editCluster EditCluster) (*WaitGetClusterRunning[any], error) { +func (a *ClustersAPI) Edit(ctx context.Context, editCluster EditCluster) (*WaitGetClusterRunning[struct{}], error) { err := a.impl.Edit(ctx, editCluster) if err != nil { return nil, err } - return &WaitGetClusterRunning[any]{ + return &WaitGetClusterRunning[struct{}]{ ClusterId: editCluster.ClusterId, - poll: func(timeout time.Duration, callback func(*ClusterDetails)) (*ClusterDetails, error) { + Poll: func(timeout time.Duration, callback func(*ClusterDetails)) (*ClusterDetails, error) { return a.WaitGetClusterRunning(ctx, editCluster.ClusterId, timeout, callback) }, timeout: 20 * time.Minute, @@ -1068,7 +1068,7 @@ func (a *ClustersAPI) EditAndWait(ctx context.Context, editCluster EditCluster, // nparameters necessary to request the next page of events. // // This method is generated by Databricks SDK Code Generator. -func (a *ClustersAPI) Events(ctx context.Context, request GetEvents) *listing.PaginatingIterator[GetEvents, *GetEventsResponse, ClusterEvent] { +func (a *ClustersAPI) Events(ctx context.Context, request GetEvents) listing.Iterator[ClusterEvent] { getNextPage := func(ctx context.Context, req GetEvents) (*GetEventsResponse, error) { ctx = useragent.InContext(ctx, "sdk-feature", "pagination") @@ -1171,7 +1171,7 @@ func (a *ClustersAPI) GetPermissionsByClusterId(ctx context.Context, clusterId s // terminated job clusters. // // This method is generated by Databricks SDK Code Generator. -func (a *ClustersAPI) List(ctx context.Context, request ListClustersRequest) *listing.PaginatingIterator[ListClustersRequest, *ListClustersResponse, ClusterDetails] { +func (a *ClustersAPI) List(ctx context.Context, request ListClustersRequest) listing.Iterator[ClusterDetails] { getNextPage := func(ctx context.Context, req ListClustersRequest) (*ListClustersResponse, error) { ctx = useragent.InContext(ctx, "sdk-feature", "pagination") @@ -1343,15 +1343,15 @@ func (a *ClustersAPI) PinByClusterId(ctx context.Context, clusterId string) erro // // Resizes a cluster to have a desired number of workers. This will fail unless // the cluster is in a `RUNNING` state. -func (a *ClustersAPI) Resize(ctx context.Context, resizeCluster ResizeCluster) (*WaitGetClusterRunning[any], error) { +func (a *ClustersAPI) Resize(ctx context.Context, resizeCluster ResizeCluster) (*WaitGetClusterRunning[struct{}], error) { err := a.impl.Resize(ctx, resizeCluster) if err != nil { return nil, err } - return &WaitGetClusterRunning[any]{ + return &WaitGetClusterRunning[struct{}]{ ClusterId: resizeCluster.ClusterId, - poll: func(timeout time.Duration, callback func(*ClusterDetails)) (*ClusterDetails, error) { + Poll: func(timeout time.Duration, callback func(*ClusterDetails)) (*ClusterDetails, error) { return a.WaitGetClusterRunning(ctx, resizeCluster.ClusterId, timeout, callback) }, timeout: 20 * time.Minute, @@ -1390,15 +1390,15 @@ func (a *ClustersAPI) ResizeAndWait(ctx context.Context, resizeCluster ResizeClu // // Restarts a Spark cluster with the supplied ID. If the cluster is not // currently in a `RUNNING` state, nothing will happen. -func (a *ClustersAPI) Restart(ctx context.Context, restartCluster RestartCluster) (*WaitGetClusterRunning[any], error) { +func (a *ClustersAPI) Restart(ctx context.Context, restartCluster RestartCluster) (*WaitGetClusterRunning[struct{}], error) { err := a.impl.Restart(ctx, restartCluster) if err != nil { return nil, err } - return &WaitGetClusterRunning[any]{ + return &WaitGetClusterRunning[struct{}]{ ClusterId: restartCluster.ClusterId, - poll: func(timeout time.Duration, callback func(*ClusterDetails)) (*ClusterDetails, error) { + Poll: func(timeout time.Duration, callback func(*ClusterDetails)) (*ClusterDetails, error) { return a.WaitGetClusterRunning(ctx, restartCluster.ClusterId, timeout, callback) }, timeout: 20 * time.Minute, @@ -1459,15 +1459,15 @@ func (a *ClustersAPI) SparkVersions(ctx context.Context) (*GetSparkVersionsRespo // autoscaling cluster, the current cluster starts with the minimum number of // nodes. * If the cluster is not currently in a `TERMINATED` state, nothing // will happen. * Clusters launched to run a job cannot be started. -func (a *ClustersAPI) Start(ctx context.Context, startCluster StartCluster) (*WaitGetClusterRunning[any], error) { +func (a *ClustersAPI) Start(ctx context.Context, startCluster StartCluster) (*WaitGetClusterRunning[struct{}], error) { err := a.impl.Start(ctx, startCluster) if err != nil { return nil, err } - return &WaitGetClusterRunning[any]{ + return &WaitGetClusterRunning[struct{}]{ ClusterId: startCluster.ClusterId, - poll: func(timeout time.Duration, callback func(*ClusterDetails)) (*ClusterDetails, error) { + Poll: func(timeout time.Duration, callback func(*ClusterDetails)) (*ClusterDetails, error) { return a.WaitGetClusterRunning(ctx, startCluster.ClusterId, timeout, callback) }, timeout: 20 * time.Minute, @@ -1580,7 +1580,7 @@ type CommandExecutionInterface interface { // Cancels a currently running command within an execution context. // // The command ID is obtained from a prior successful call to __execute__. - Cancel(ctx context.Context, cancelCommand CancelCommand) (*WaitCommandStatusCommandExecutionCancelled[any], error) + Cancel(ctx context.Context, cancelCommand CancelCommand) (*WaitCommandStatusCommandExecutionCancelled[struct{}], error) // Calls [CommandExecutionAPIInterface.Cancel] and waits to reach Cancelled state // @@ -1711,7 +1711,7 @@ type WaitCommandStatusCommandExecutionCancelled[R any] struct { ClusterId string `json:"clusterId"` CommandId string `json:"commandId"` ContextId string `json:"contextId"` - poll func(time.Duration, func(*CommandStatusResponse)) (*CommandStatusResponse, error) + Poll func(time.Duration, func(*CommandStatusResponse)) (*CommandStatusResponse, error) callback func(*CommandStatusResponse) timeout time.Duration } @@ -1724,12 +1724,12 @@ func (w *WaitCommandStatusCommandExecutionCancelled[R]) OnProgress(callback func // Get the CommandStatusResponse with the default timeout of 20 minutes. func (w *WaitCommandStatusCommandExecutionCancelled[R]) Get() (*CommandStatusResponse, error) { - return w.poll(w.timeout, w.callback) + return w.Poll(w.timeout, w.callback) } // Get the CommandStatusResponse with custom timeout. func (w *WaitCommandStatusCommandExecutionCancelled[R]) GetWithTimeout(timeout time.Duration) (*CommandStatusResponse, error) { - return w.poll(timeout, w.callback) + return w.Poll(timeout, w.callback) } // WaitCommandStatusCommandExecutionFinishedOrError repeatedly calls [CommandExecutionAPI.CommandStatus] and waits to reach Finished or Error state @@ -1769,7 +1769,7 @@ type WaitCommandStatusCommandExecutionFinishedOrError[R any] struct { ClusterId string `json:"clusterId"` CommandId string `json:"commandId"` ContextId string `json:"contextId"` - poll func(time.Duration, func(*CommandStatusResponse)) (*CommandStatusResponse, error) + Poll func(time.Duration, func(*CommandStatusResponse)) (*CommandStatusResponse, error) callback func(*CommandStatusResponse) timeout time.Duration } @@ -1782,12 +1782,12 @@ func (w *WaitCommandStatusCommandExecutionFinishedOrError[R]) OnProgress(callbac // Get the CommandStatusResponse with the default timeout of 20 minutes. func (w *WaitCommandStatusCommandExecutionFinishedOrError[R]) Get() (*CommandStatusResponse, error) { - return w.poll(w.timeout, w.callback) + return w.Poll(w.timeout, w.callback) } // Get the CommandStatusResponse with custom timeout. func (w *WaitCommandStatusCommandExecutionFinishedOrError[R]) GetWithTimeout(timeout time.Duration) (*CommandStatusResponse, error) { - return w.poll(timeout, w.callback) + return w.Poll(timeout, w.callback) } // WaitContextStatusCommandExecutionRunning repeatedly calls [CommandExecutionAPI.ContextStatus] and waits to reach Running state @@ -1825,7 +1825,7 @@ type WaitContextStatusCommandExecutionRunning[R any] struct { Response *R ClusterId string `json:"clusterId"` ContextId string `json:"contextId"` - poll func(time.Duration, func(*ContextStatusResponse)) (*ContextStatusResponse, error) + Poll func(time.Duration, func(*ContextStatusResponse)) (*ContextStatusResponse, error) callback func(*ContextStatusResponse) timeout time.Duration } @@ -1838,12 +1838,12 @@ func (w *WaitContextStatusCommandExecutionRunning[R]) OnProgress(callback func(* // Get the ContextStatusResponse with the default timeout of 20 minutes. func (w *WaitContextStatusCommandExecutionRunning[R]) Get() (*ContextStatusResponse, error) { - return w.poll(w.timeout, w.callback) + return w.Poll(w.timeout, w.callback) } // Get the ContextStatusResponse with custom timeout. func (w *WaitContextStatusCommandExecutionRunning[R]) GetWithTimeout(timeout time.Duration) (*ContextStatusResponse, error) { - return w.poll(timeout, w.callback) + return w.Poll(timeout, w.callback) } // Cancel a command. @@ -1851,17 +1851,17 @@ func (w *WaitContextStatusCommandExecutionRunning[R]) GetWithTimeout(timeout tim // Cancels a currently running command within an execution context. // // The command ID is obtained from a prior successful call to __execute__. -func (a *CommandExecutionAPI) Cancel(ctx context.Context, cancelCommand CancelCommand) (*WaitCommandStatusCommandExecutionCancelled[any], error) { +func (a *CommandExecutionAPI) Cancel(ctx context.Context, cancelCommand CancelCommand) (*WaitCommandStatusCommandExecutionCancelled[struct{}], error) { err := a.impl.Cancel(ctx, cancelCommand) if err != nil { return nil, err } - return &WaitCommandStatusCommandExecutionCancelled[any]{ + return &WaitCommandStatusCommandExecutionCancelled[struct{}]{ ClusterId: cancelCommand.ClusterId, CommandId: cancelCommand.CommandId, ContextId: cancelCommand.ContextId, - poll: func(timeout time.Duration, callback func(*CommandStatusResponse)) (*CommandStatusResponse, error) { + Poll: func(timeout time.Duration, callback func(*CommandStatusResponse)) (*CommandStatusResponse, error) { return a.WaitCommandStatusCommandExecutionCancelled(ctx, cancelCommand.ClusterId, cancelCommand.CommandId, cancelCommand.ContextId, timeout, callback) }, timeout: 20 * time.Minute, @@ -1927,7 +1927,7 @@ func (a *CommandExecutionAPI) Create(ctx context.Context, createContext CreateCo Response: created, ClusterId: createContext.ClusterId, ContextId: created.Id, - poll: func(timeout time.Duration, callback func(*ContextStatusResponse)) (*ContextStatusResponse, error) { + Poll: func(timeout time.Duration, callback func(*ContextStatusResponse)) (*ContextStatusResponse, error) { return a.WaitContextStatusCommandExecutionRunning(ctx, createContext.ClusterId, created.Id, timeout, callback) }, timeout: 20 * time.Minute, @@ -1986,7 +1986,7 @@ func (a *CommandExecutionAPI) Execute(ctx context.Context, command Command) (*Wa ClusterId: command.ClusterId, CommandId: created.Id, ContextId: command.ContextId, - poll: func(timeout time.Duration, callback func(*CommandStatusResponse)) (*CommandStatusResponse, error) { + Poll: func(timeout time.Duration, callback func(*CommandStatusResponse)) (*CommandStatusResponse, error) { return a.WaitCommandStatusCommandExecutionFinishedOrError(ctx, command.ClusterId, created.Id, command.ContextId, timeout, callback) }, timeout: 20 * time.Minute, @@ -2064,7 +2064,7 @@ type GlobalInitScriptsInterface interface { // script](#operation/get-script) operation. // // This method is generated by Databricks SDK Code Generator. - List(ctx context.Context) *listing.PaginatingIterator[struct{}, *ListGlobalInitScriptsResponse, GlobalInitScriptDetails] + List(ctx context.Context) listing.Iterator[GlobalInitScriptDetails] // Get init scripts. // @@ -2186,7 +2186,7 @@ func (a *GlobalInitScriptsAPI) GetByScriptId(ctx context.Context, scriptId strin // script](#operation/get-script) operation. // // This method is generated by Databricks SDK Code Generator. -func (a *GlobalInitScriptsAPI) List(ctx context.Context) *listing.PaginatingIterator[struct{}, *ListGlobalInitScriptsResponse, GlobalInitScriptDetails] { +func (a *GlobalInitScriptsAPI) List(ctx context.Context) listing.Iterator[GlobalInitScriptDetails] { request := struct{}{} getNextPage := func(ctx context.Context, req struct{}) (*ListGlobalInitScriptsResponse, error) { @@ -2348,7 +2348,7 @@ type InstancePoolsInterface interface { // Gets a list of instance pools with their statistics. // // This method is generated by Databricks SDK Code Generator. - List(ctx context.Context) *listing.PaginatingIterator[struct{}, *ListInstancePools, InstancePoolAndStats] + List(ctx context.Context) listing.Iterator[InstancePoolAndStats] // List instance pool info. // @@ -2521,7 +2521,7 @@ func (a *InstancePoolsAPI) GetPermissionsByInstancePoolId(ctx context.Context, i // Gets a list of instance pools with their statistics. // // This method is generated by Databricks SDK Code Generator. -func (a *InstancePoolsAPI) List(ctx context.Context) *listing.PaginatingIterator[struct{}, *ListInstancePools, InstancePoolAndStats] { +func (a *InstancePoolsAPI) List(ctx context.Context) listing.Iterator[InstancePoolAndStats] { request := struct{}{} getNextPage := func(ctx context.Context, req struct{}) (*ListInstancePools, error) { @@ -2661,7 +2661,7 @@ type InstanceProfilesInterface interface { // This API is available to all users. // // This method is generated by Databricks SDK Code Generator. - List(ctx context.Context) *listing.PaginatingIterator[struct{}, *ListInstanceProfilesResponse, InstanceProfile] + List(ctx context.Context) listing.Iterator[InstanceProfile] // List available instance profiles. // @@ -2759,7 +2759,7 @@ func (a *InstanceProfilesAPI) Edit(ctx context.Context, request InstanceProfile) // This API is available to all users. // // This method is generated by Databricks SDK Code Generator. -func (a *InstanceProfilesAPI) List(ctx context.Context) *listing.PaginatingIterator[struct{}, *ListInstanceProfilesResponse, InstanceProfile] { +func (a *InstanceProfilesAPI) List(ctx context.Context) listing.Iterator[InstanceProfile] { request := struct{}{} getNextPage := func(ctx context.Context, req struct{}) (*ListInstanceProfilesResponse, error) { @@ -2850,7 +2850,7 @@ type LibrariesInterface interface { // guarantee. // // This method is generated by Databricks SDK Code Generator. - ClusterStatus(ctx context.Context, request ClusterStatusRequest) *listing.PaginatingIterator[ClusterStatusRequest, *ClusterLibraryStatuses, LibraryFullStatus] + ClusterStatus(ctx context.Context, request ClusterStatusRequest) listing.Iterator[LibraryFullStatus] // Get status. // @@ -2987,7 +2987,7 @@ func (a *LibrariesAPI) AllClusterStatuses(ctx context.Context) (*ListAllClusterL // guarantee. // // This method is generated by Databricks SDK Code Generator. -func (a *LibrariesAPI) ClusterStatus(ctx context.Context, request ClusterStatusRequest) *listing.PaginatingIterator[ClusterStatusRequest, *ClusterLibraryStatuses, LibraryFullStatus] { +func (a *LibrariesAPI) ClusterStatus(ctx context.Context, request ClusterStatusRequest) listing.Iterator[LibraryFullStatus] { getNextPage := func(ctx context.Context, req ClusterStatusRequest) (*ClusterLibraryStatuses, error) { ctx = useragent.InContext(ctx, "sdk-feature", "pagination") @@ -3098,7 +3098,7 @@ type PolicyFamiliesInterface interface { // Retrieve a list of policy families. This API is paginated. // // This method is generated by Databricks SDK Code Generator. - List(ctx context.Context, request ListPolicyFamiliesRequest) *listing.PaginatingIterator[ListPolicyFamiliesRequest, *ListPolicyFamiliesResponse, PolicyFamily] + List(ctx context.Context, request ListPolicyFamiliesRequest) listing.Iterator[PolicyFamily] // List policy families. // @@ -3166,7 +3166,7 @@ func (a *PolicyFamiliesAPI) GetByPolicyFamilyId(ctx context.Context, policyFamil // Retrieve a list of policy families. This API is paginated. // // This method is generated by Databricks SDK Code Generator. -func (a *PolicyFamiliesAPI) List(ctx context.Context, request ListPolicyFamiliesRequest) *listing.PaginatingIterator[ListPolicyFamiliesRequest, *ListPolicyFamiliesResponse, PolicyFamily] { +func (a *PolicyFamiliesAPI) List(ctx context.Context, request ListPolicyFamiliesRequest) listing.Iterator[PolicyFamily] { getNextPage := func(ctx context.Context, req ListPolicyFamiliesRequest) (*ListPolicyFamiliesResponse, error) { ctx = useragent.InContext(ctx, "sdk-feature", "pagination") diff --git a/service/files/api.go b/service/files/api.go index daa44711b..9f9d48746 100755 --- a/service/files/api.go +++ b/service/files/api.go @@ -107,7 +107,7 @@ type DbfsInterface interface { // which provides the same functionality without timing out. // // This method is generated by Databricks SDK Code Generator. - List(ctx context.Context, request ListDbfsRequest) *listing.PaginatingIterator[ListDbfsRequest, *ListStatusResponse, FileInfo] + List(ctx context.Context, request ListDbfsRequest) listing.Iterator[FileInfo] // List directory contents or file details. // @@ -330,7 +330,7 @@ func (a *DbfsAPI) GetStatusByPath(ctx context.Context, path string) (*FileInfo, // which provides the same functionality without timing out. // // This method is generated by Databricks SDK Code Generator. -func (a *DbfsAPI) List(ctx context.Context, request ListDbfsRequest) *listing.PaginatingIterator[ListDbfsRequest, *ListStatusResponse, FileInfo] { +func (a *DbfsAPI) List(ctx context.Context, request ListDbfsRequest) listing.Iterator[FileInfo] { getNextPage := func(ctx context.Context, req ListDbfsRequest) (*ListStatusResponse, error) { ctx = useragent.InContext(ctx, "sdk-feature", "pagination") diff --git a/service/iam/api.go b/service/iam/api.go index bd9061112..49f96d6b3 100755 --- a/service/iam/api.go +++ b/service/iam/api.go @@ -234,7 +234,7 @@ type AccountGroupsInterface interface { // Gets all details of the groups associated with the Databricks account. // // This method is generated by Databricks SDK Code Generator. - List(ctx context.Context, request ListAccountGroupsRequest) *listing.DeduplicatingIterator[Group, string] + List(ctx context.Context, request ListAccountGroupsRequest) listing.Iterator[Group] // List group details. // @@ -352,7 +352,7 @@ func (a *AccountGroupsAPI) GetById(ctx context.Context, id string) (*Group, erro // Gets all details of the groups associated with the Databricks account. // // This method is generated by Databricks SDK Code Generator. -func (a *AccountGroupsAPI) List(ctx context.Context, request ListAccountGroupsRequest) *listing.DeduplicatingIterator[Group, string] { +func (a *AccountGroupsAPI) List(ctx context.Context, request ListAccountGroupsRequest) listing.Iterator[Group] { request.StartIndex = 1 // SCIM offset starts from 1 if request.Count == 0 { @@ -505,7 +505,7 @@ type AccountServicePrincipalsInterface interface { // Gets the set of service principals associated with a Databricks account. // // This method is generated by Databricks SDK Code Generator. - List(ctx context.Context, request ListAccountServicePrincipalsRequest) *listing.DeduplicatingIterator[ServicePrincipal, string] + List(ctx context.Context, request ListAccountServicePrincipalsRequest) listing.Iterator[ServicePrincipal] // List service principals. // @@ -626,7 +626,7 @@ func (a *AccountServicePrincipalsAPI) GetById(ctx context.Context, id string) (* // Gets the set of service principals associated with a Databricks account. // // This method is generated by Databricks SDK Code Generator. -func (a *AccountServicePrincipalsAPI) List(ctx context.Context, request ListAccountServicePrincipalsRequest) *listing.DeduplicatingIterator[ServicePrincipal, string] { +func (a *AccountServicePrincipalsAPI) List(ctx context.Context, request ListAccountServicePrincipalsRequest) listing.Iterator[ServicePrincipal] { request.StartIndex = 1 // SCIM offset starts from 1 if request.Count == 0 { @@ -783,7 +783,7 @@ type AccountUsersInterface interface { // Gets details for all the users associated with a Databricks account. // // This method is generated by Databricks SDK Code Generator. - List(ctx context.Context, request ListAccountUsersRequest) *listing.DeduplicatingIterator[User, string] + List(ctx context.Context, request ListAccountUsersRequest) listing.Iterator[User] // List users. // @@ -908,7 +908,7 @@ func (a *AccountUsersAPI) GetById(ctx context.Context, id string) (*User, error) // Gets details for all the users associated with a Databricks account. // // This method is generated by Databricks SDK Code Generator. -func (a *AccountUsersAPI) List(ctx context.Context, request ListAccountUsersRequest) *listing.DeduplicatingIterator[User, string] { +func (a *AccountUsersAPI) List(ctx context.Context, request ListAccountUsersRequest) listing.Iterator[User] { request.StartIndex = 1 // SCIM offset starts from 1 if request.Count == 0 { @@ -1114,7 +1114,7 @@ type GroupsInterface interface { // Gets all details of the groups associated with the Databricks workspace. // // This method is generated by Databricks SDK Code Generator. - List(ctx context.Context, request ListGroupsRequest) *listing.DeduplicatingIterator[Group, string] + List(ctx context.Context, request ListGroupsRequest) listing.Iterator[Group] // List group details. // @@ -1232,7 +1232,7 @@ func (a *GroupsAPI) GetById(ctx context.Context, id string) (*Group, error) { // Gets all details of the groups associated with the Databricks workspace. // // This method is generated by Databricks SDK Code Generator. -func (a *GroupsAPI) List(ctx context.Context, request ListGroupsRequest) *listing.DeduplicatingIterator[Group, string] { +func (a *GroupsAPI) List(ctx context.Context, request ListGroupsRequest) listing.Iterator[Group] { request.StartIndex = 1 // SCIM offset starts from 1 if request.Count == 0 { @@ -1557,7 +1557,7 @@ type ServicePrincipalsInterface interface { // Gets the set of service principals associated with a Databricks workspace. // // This method is generated by Databricks SDK Code Generator. - List(ctx context.Context, request ListServicePrincipalsRequest) *listing.DeduplicatingIterator[ServicePrincipal, string] + List(ctx context.Context, request ListServicePrincipalsRequest) listing.Iterator[ServicePrincipal] // List service principals. // @@ -1678,7 +1678,7 @@ func (a *ServicePrincipalsAPI) GetById(ctx context.Context, id string) (*Service // Gets the set of service principals associated with a Databricks workspace. // // This method is generated by Databricks SDK Code Generator. -func (a *ServicePrincipalsAPI) List(ctx context.Context, request ListServicePrincipalsRequest) *listing.DeduplicatingIterator[ServicePrincipal, string] { +func (a *ServicePrincipalsAPI) List(ctx context.Context, request ListServicePrincipalsRequest) listing.Iterator[ServicePrincipal] { request.StartIndex = 1 // SCIM offset starts from 1 if request.Count == 0 { @@ -1846,7 +1846,7 @@ type UsersInterface interface { // Gets details for all the users associated with a Databricks workspace. // // This method is generated by Databricks SDK Code Generator. - List(ctx context.Context, request ListUsersRequest) *listing.DeduplicatingIterator[User, string] + List(ctx context.Context, request ListUsersRequest) listing.Iterator[User] // List users. // @@ -1998,7 +1998,7 @@ func (a *UsersAPI) GetPermissions(ctx context.Context) (*PasswordPermissions, er // Gets details for all the users associated with a Databricks workspace. // // This method is generated by Databricks SDK Code Generator. -func (a *UsersAPI) List(ctx context.Context, request ListUsersRequest) *listing.DeduplicatingIterator[User, string] { +func (a *UsersAPI) List(ctx context.Context, request ListUsersRequest) listing.Iterator[User] { request.StartIndex = 1 // SCIM offset starts from 1 if request.Count == 0 { @@ -2166,7 +2166,7 @@ type WorkspaceAssignmentInterface interface { // Databricks workspace. // // This method is generated by Databricks SDK Code Generator. - List(ctx context.Context, request ListWorkspaceAssignmentRequest) *listing.PaginatingIterator[ListWorkspaceAssignmentRequest, *PermissionAssignments, PermissionAssignment] + List(ctx context.Context, request ListWorkspaceAssignmentRequest) listing.Iterator[PermissionAssignment] // Get permission assignments. // @@ -2262,7 +2262,7 @@ func (a *WorkspaceAssignmentAPI) GetByWorkspaceId(ctx context.Context, workspace // Databricks workspace. // // This method is generated by Databricks SDK Code Generator. -func (a *WorkspaceAssignmentAPI) List(ctx context.Context, request ListWorkspaceAssignmentRequest) *listing.PaginatingIterator[ListWorkspaceAssignmentRequest, *PermissionAssignments, PermissionAssignment] { +func (a *WorkspaceAssignmentAPI) List(ctx context.Context, request ListWorkspaceAssignmentRequest) listing.Iterator[PermissionAssignment] { getNextPage := func(ctx context.Context, req ListWorkspaceAssignmentRequest) (*PermissionAssignments, error) { ctx = useragent.InContext(ctx, "sdk-feature", "pagination") diff --git a/service/iam/model.go b/service/iam/model.go index 5c017b75a..d2a885371 100755 --- a/service/iam/model.go +++ b/service/iam/model.go @@ -326,7 +326,7 @@ type Group struct { Groups []ComplexValue `json:"groups,omitempty"` // Databricks group ID - Id string `json:"id,omitempty" url:"-"` + Id string `json:"id,omitempty"` Members []ComplexValue `json:"members,omitempty"` // Container for the group identifier. Workspace local versus account. @@ -1186,7 +1186,7 @@ type ServicePrincipal struct { Groups []ComplexValue `json:"groups,omitempty"` // Databricks service principal ID. - Id string `json:"id,omitempty" url:"-"` + Id string `json:"id,omitempty"` // Corresponds to AWS instance profile/arn role. Roles []ComplexValue `json:"roles,omitempty"` // The schema of the List response. diff --git a/service/jobs/api.go b/service/jobs/api.go index aa04404c0..cd2e45ab3 100755 --- a/service/jobs/api.go +++ b/service/jobs/api.go @@ -38,7 +38,7 @@ type JobsInterface interface { // // Cancels a job run or a task run. The run is canceled asynchronously, so it // may still be running when this request completes. - CancelRun(ctx context.Context, cancelRun CancelRun) (*WaitGetRunJobTerminatedOrSkipped[any], error) + CancelRun(ctx context.Context, cancelRun CancelRun) (*WaitGetRunJobTerminatedOrSkipped[struct{}], error) // Calls [JobsAPIInterface.CancelRun] and waits to reach TERMINATED or SKIPPED state // @@ -156,7 +156,7 @@ type JobsInterface interface { // Retrieves a list of jobs. // // This method is generated by Databricks SDK Code Generator. - List(ctx context.Context, request ListJobsRequest) *listing.PaginatingIterator[ListJobsRequest, *ListJobsResponse, BaseJob] + List(ctx context.Context, request ListJobsRequest) listing.Iterator[BaseJob] // List jobs. // @@ -188,7 +188,7 @@ type JobsInterface interface { // List runs in descending order by start time. // // This method is generated by Databricks SDK Code Generator. - ListRuns(ctx context.Context, request ListRunsRequest) *listing.PaginatingIterator[ListRunsRequest, *ListRunsResponse, BaseRun] + ListRuns(ctx context.Context, request ListRunsRequest) listing.Iterator[BaseRun] // List job runs. // @@ -348,7 +348,7 @@ func (a *JobsAPI) WaitGetRunJobTerminatedOrSkipped(ctx context.Context, runId in type WaitGetRunJobTerminatedOrSkipped[R any] struct { Response *R RunId int64 `json:"run_id"` - poll func(time.Duration, func(*Run)) (*Run, error) + Poll func(time.Duration, func(*Run)) (*Run, error) callback func(*Run) timeout time.Duration } @@ -361,12 +361,12 @@ func (w *WaitGetRunJobTerminatedOrSkipped[R]) OnProgress(callback func(*Run)) *W // Get the Run with the default timeout of 20 minutes. func (w *WaitGetRunJobTerminatedOrSkipped[R]) Get() (*Run, error) { - return w.poll(w.timeout, w.callback) + return w.Poll(w.timeout, w.callback) } // Get the Run with custom timeout. func (w *WaitGetRunJobTerminatedOrSkipped[R]) GetWithTimeout(timeout time.Duration) (*Run, error) { - return w.poll(timeout, w.callback) + return w.Poll(timeout, w.callback) } // Cancel all runs of a job. @@ -381,15 +381,15 @@ func (a *JobsAPI) CancelAllRuns(ctx context.Context, request CancelAllRuns) erro // // Cancels a job run or a task run. The run is canceled asynchronously, so it // may still be running when this request completes. -func (a *JobsAPI) CancelRun(ctx context.Context, cancelRun CancelRun) (*WaitGetRunJobTerminatedOrSkipped[any], error) { +func (a *JobsAPI) CancelRun(ctx context.Context, cancelRun CancelRun) (*WaitGetRunJobTerminatedOrSkipped[struct{}], error) { err := a.impl.CancelRun(ctx, cancelRun) if err != nil { return nil, err } - return &WaitGetRunJobTerminatedOrSkipped[any]{ + return &WaitGetRunJobTerminatedOrSkipped[struct{}]{ RunId: cancelRun.RunId, - poll: func(timeout time.Duration, callback func(*Run)) (*Run, error) { + Poll: func(timeout time.Duration, callback func(*Run)) (*Run, error) { return a.WaitGetRunJobTerminatedOrSkipped(ctx, cancelRun.RunId, timeout, callback) }, timeout: 20 * time.Minute, @@ -582,7 +582,7 @@ func (a *JobsAPI) GetRunOutputByRunId(ctx context.Context, runId int64) (*RunOut // Retrieves a list of jobs. // // This method is generated by Databricks SDK Code Generator. -func (a *JobsAPI) List(ctx context.Context, request ListJobsRequest) *listing.PaginatingIterator[ListJobsRequest, *ListJobsResponse, BaseJob] { +func (a *JobsAPI) List(ctx context.Context, request ListJobsRequest) listing.Iterator[BaseJob] { getNextPage := func(ctx context.Context, req ListJobsRequest) (*ListJobsResponse, error) { ctx = useragent.InContext(ctx, "sdk-feature", "pagination") @@ -675,7 +675,7 @@ func (a *JobsAPI) GetBySettingsName(ctx context.Context, name string) (*BaseJob, // List runs in descending order by start time. // // This method is generated by Databricks SDK Code Generator. -func (a *JobsAPI) ListRuns(ctx context.Context, request ListRunsRequest) *listing.PaginatingIterator[ListRunsRequest, *ListRunsResponse, BaseRun] { +func (a *JobsAPI) ListRuns(ctx context.Context, request ListRunsRequest) listing.Iterator[BaseRun] { getNextPage := func(ctx context.Context, req ListRunsRequest) (*ListRunsResponse, error) { ctx = useragent.InContext(ctx, "sdk-feature", "pagination") @@ -723,7 +723,7 @@ func (a *JobsAPI) RepairRun(ctx context.Context, repairRun RepairRun) (*WaitGetR return &WaitGetRunJobTerminatedOrSkipped[RepairRunResponse]{ Response: repairRunResponse, RunId: repairRun.RunId, - poll: func(timeout time.Duration, callback func(*Run)) (*Run, error) { + Poll: func(timeout time.Duration, callback func(*Run)) (*Run, error) { return a.WaitGetRunJobTerminatedOrSkipped(ctx, repairRun.RunId, timeout, callback) }, timeout: 20 * time.Minute, @@ -777,7 +777,7 @@ func (a *JobsAPI) RunNow(ctx context.Context, runNow RunNow) (*WaitGetRunJobTerm return &WaitGetRunJobTerminatedOrSkipped[RunNowResponse]{ Response: runNowResponse, RunId: runNowResponse.RunId, - poll: func(timeout time.Duration, callback func(*Run)) (*Run, error) { + Poll: func(timeout time.Duration, callback func(*Run)) (*Run, error) { return a.WaitGetRunJobTerminatedOrSkipped(ctx, runNowResponse.RunId, timeout, callback) }, timeout: 20 * time.Minute, @@ -834,7 +834,7 @@ func (a *JobsAPI) Submit(ctx context.Context, submitRun SubmitRun) (*WaitGetRunJ return &WaitGetRunJobTerminatedOrSkipped[SubmitRunResponse]{ Response: submitRunResponse, RunId: submitRunResponse.RunId, - poll: func(timeout time.Duration, callback func(*Run)) (*Run, error) { + Poll: func(timeout time.Duration, callback func(*Run)) (*Run, error) { return a.WaitGetRunJobTerminatedOrSkipped(ctx, submitRunResponse.RunId, timeout, callback) }, timeout: 20 * time.Minute, diff --git a/service/ml/api.go b/service/ml/api.go index c1b49d33e..741a3af8b 100755 --- a/service/ml/api.go +++ b/service/ml/api.go @@ -86,7 +86,7 @@ type ExperimentsInterface interface { // Gets a list of all values for the specified metric for a given run. // // This method is generated by Databricks SDK Code Generator. - GetHistory(ctx context.Context, request GetHistoryRequest) *listing.PaginatingIterator[GetHistoryRequest, *GetMetricHistoryResponse, Metric] + GetHistory(ctx context.Context, request GetHistoryRequest) listing.Iterator[Metric] // Get history of a given metric within a run. // @@ -133,7 +133,7 @@ type ExperimentsInterface interface { // specified, the response contains only artifacts with the specified prefix.", // // This method is generated by Databricks SDK Code Generator. - ListArtifacts(ctx context.Context, request ListArtifactsRequest) *listing.PaginatingIterator[ListArtifactsRequest, *ListArtifactsResponse, FileInfo] + ListArtifacts(ctx context.Context, request ListArtifactsRequest) listing.Iterator[FileInfo] // Get all artifacts. // @@ -148,7 +148,7 @@ type ExperimentsInterface interface { // Gets a list of all experiments. // // This method is generated by Databricks SDK Code Generator. - ListExperiments(ctx context.Context, request ListExperimentsRequest) *listing.PaginatingIterator[ListExperimentsRequest, *ListExperimentsResponse, Experiment] + ListExperiments(ctx context.Context, request ListExperimentsRequest) listing.Iterator[Experiment] // List experiments. // @@ -251,7 +251,7 @@ type ExperimentsInterface interface { // Searches for experiments that satisfy specified search criteria. // // This method is generated by Databricks SDK Code Generator. - SearchExperiments(ctx context.Context, request SearchExperiments) *listing.PaginatingIterator[SearchExperiments, *SearchExperimentsResponse, Experiment] + SearchExperiments(ctx context.Context, request SearchExperiments) listing.Iterator[Experiment] // Search experiments. // @@ -267,7 +267,7 @@ type ExperimentsInterface interface { // Search expressions can use `mlflowMetric` and `mlflowParam` keys.", // // This method is generated by Databricks SDK Code Generator. - SearchRuns(ctx context.Context, request SearchRuns) *listing.PaginatingIterator[SearchRuns, *SearchRunsResponse, Run] + SearchRuns(ctx context.Context, request SearchRuns) listing.Iterator[Run] // Search for runs. // @@ -431,7 +431,7 @@ func (a *ExperimentsAPI) GetExperiment(ctx context.Context, request GetExperimen // Gets a list of all values for the specified metric for a given run. // // This method is generated by Databricks SDK Code Generator. -func (a *ExperimentsAPI) GetHistory(ctx context.Context, request GetHistoryRequest) *listing.PaginatingIterator[GetHistoryRequest, *GetMetricHistoryResponse, Metric] { +func (a *ExperimentsAPI) GetHistory(ctx context.Context, request GetHistoryRequest) listing.Iterator[Metric] { getNextPage := func(ctx context.Context, req GetHistoryRequest) (*GetMetricHistoryResponse, error) { ctx = useragent.InContext(ctx, "sdk-feature", "pagination") @@ -518,7 +518,7 @@ func (a *ExperimentsAPI) GetRun(ctx context.Context, request GetRunRequest) (*Ge // specified, the response contains only artifacts with the specified prefix.", // // This method is generated by Databricks SDK Code Generator. -func (a *ExperimentsAPI) ListArtifacts(ctx context.Context, request ListArtifactsRequest) *listing.PaginatingIterator[ListArtifactsRequest, *ListArtifactsResponse, FileInfo] { +func (a *ExperimentsAPI) ListArtifacts(ctx context.Context, request ListArtifactsRequest) listing.Iterator[FileInfo] { getNextPage := func(ctx context.Context, req ListArtifactsRequest) (*ListArtifactsResponse, error) { ctx = useragent.InContext(ctx, "sdk-feature", "pagination") @@ -558,7 +558,7 @@ func (a *ExperimentsAPI) ListArtifactsAll(ctx context.Context, request ListArtif // Gets a list of all experiments. // // This method is generated by Databricks SDK Code Generator. -func (a *ExperimentsAPI) ListExperiments(ctx context.Context, request ListExperimentsRequest) *listing.PaginatingIterator[ListExperimentsRequest, *ListExperimentsResponse, Experiment] { +func (a *ExperimentsAPI) ListExperiments(ctx context.Context, request ListExperimentsRequest) listing.Iterator[Experiment] { getNextPage := func(ctx context.Context, req ListExperimentsRequest) (*ListExperimentsResponse, error) { ctx = useragent.InContext(ctx, "sdk-feature", "pagination") @@ -703,7 +703,7 @@ func (a *ExperimentsAPI) RestoreRuns(ctx context.Context, request RestoreRuns) ( // Searches for experiments that satisfy specified search criteria. // // This method is generated by Databricks SDK Code Generator. -func (a *ExperimentsAPI) SearchExperiments(ctx context.Context, request SearchExperiments) *listing.PaginatingIterator[SearchExperiments, *SearchExperimentsResponse, Experiment] { +func (a *ExperimentsAPI) SearchExperiments(ctx context.Context, request SearchExperiments) listing.Iterator[Experiment] { getNextPage := func(ctx context.Context, req SearchExperiments) (*SearchExperimentsResponse, error) { ctx = useragent.InContext(ctx, "sdk-feature", "pagination") @@ -744,7 +744,7 @@ func (a *ExperimentsAPI) SearchExperimentsAll(ctx context.Context, request Searc // Search expressions can use `mlflowMetric` and `mlflowParam` keys.", // // This method is generated by Databricks SDK Code Generator. -func (a *ExperimentsAPI) SearchRuns(ctx context.Context, request SearchRuns) *listing.PaginatingIterator[SearchRuns, *SearchRunsResponse, Run] { +func (a *ExperimentsAPI) SearchRuns(ctx context.Context, request SearchRuns) listing.Iterator[Run] { getNextPage := func(ctx context.Context, req SearchRuns) (*SearchRunsResponse, error) { ctx = useragent.InContext(ctx, "sdk-feature", "pagination") @@ -915,7 +915,7 @@ type ModelRegistryInterface interface { // Gets the latest version of a registered model. // // This method is generated by Databricks SDK Code Generator. - GetLatestVersions(ctx context.Context, request GetLatestVersionsRequest) *listing.PaginatingIterator[GetLatestVersionsRequest, *GetLatestVersionsResponse, ModelVersion] + GetLatestVersions(ctx context.Context, request GetLatestVersionsRequest) listing.Iterator[ModelVersion] // Get the latest version. // @@ -971,7 +971,7 @@ type ModelRegistryInterface interface { // __max_results__. // // This method is generated by Databricks SDK Code Generator. - ListModels(ctx context.Context, request ListModelsRequest) *listing.PaginatingIterator[ListModelsRequest, *ListModelsResponse, Model] + ListModels(ctx context.Context, request ListModelsRequest) listing.Iterator[Model] // List models. // @@ -986,7 +986,7 @@ type ModelRegistryInterface interface { // Gets a list of all open stage transition requests for the model version. // // This method is generated by Databricks SDK Code Generator. - ListTransitionRequests(ctx context.Context, request ListTransitionRequestsRequest) *listing.PaginatingIterator[ListTransitionRequestsRequest, *ListTransitionRequestsResponse, Activity] + ListTransitionRequests(ctx context.Context, request ListTransitionRequestsRequest) listing.Iterator[Activity] // List transition requests. // @@ -1002,7 +1002,7 @@ type ModelRegistryInterface interface { // Lists all registry webhooks. // // This method is generated by Databricks SDK Code Generator. - ListWebhooks(ctx context.Context, request ListWebhooksRequest) *listing.PaginatingIterator[ListWebhooksRequest, *ListRegistryWebhooks, RegistryWebhook] + ListWebhooks(ctx context.Context, request ListWebhooksRequest) listing.Iterator[RegistryWebhook] // List registry webhooks. // @@ -1028,7 +1028,7 @@ type ModelRegistryInterface interface { // Searches for specific model versions based on the supplied __filter__. // // This method is generated by Databricks SDK Code Generator. - SearchModelVersions(ctx context.Context, request SearchModelVersionsRequest) *listing.PaginatingIterator[SearchModelVersionsRequest, *SearchModelVersionsResponse, ModelVersion] + SearchModelVersions(ctx context.Context, request SearchModelVersionsRequest) listing.Iterator[ModelVersion] // Searches model versions. // @@ -1042,7 +1042,7 @@ type ModelRegistryInterface interface { // Search for registered models based on the specified __filter__. // // This method is generated by Databricks SDK Code Generator. - SearchModels(ctx context.Context, request SearchModelsRequest) *listing.PaginatingIterator[SearchModelsRequest, *SearchModelsResponse, Model] + SearchModels(ctx context.Context, request SearchModelsRequest) listing.Iterator[Model] // Search models. // @@ -1253,7 +1253,7 @@ func (a *ModelRegistryAPI) DeleteWebhook(ctx context.Context, request DeleteWebh // Gets the latest version of a registered model. // // This method is generated by Databricks SDK Code Generator. -func (a *ModelRegistryAPI) GetLatestVersions(ctx context.Context, request GetLatestVersionsRequest) *listing.PaginatingIterator[GetLatestVersionsRequest, *GetLatestVersionsResponse, ModelVersion] { +func (a *ModelRegistryAPI) GetLatestVersions(ctx context.Context, request GetLatestVersionsRequest) listing.Iterator[ModelVersion] { getNextPage := func(ctx context.Context, req GetLatestVersionsRequest) (*GetLatestVersionsResponse, error) { ctx = useragent.InContext(ctx, "sdk-feature", "pagination") @@ -1346,7 +1346,7 @@ func (a *ModelRegistryAPI) GetPermissionsByRegisteredModelId(ctx context.Context // __max_results__. // // This method is generated by Databricks SDK Code Generator. -func (a *ModelRegistryAPI) ListModels(ctx context.Context, request ListModelsRequest) *listing.PaginatingIterator[ListModelsRequest, *ListModelsResponse, Model] { +func (a *ModelRegistryAPI) ListModels(ctx context.Context, request ListModelsRequest) listing.Iterator[Model] { getNextPage := func(ctx context.Context, req ListModelsRequest) (*ListModelsResponse, error) { ctx = useragent.InContext(ctx, "sdk-feature", "pagination") @@ -1387,7 +1387,7 @@ func (a *ModelRegistryAPI) ListModelsAll(ctx context.Context, request ListModels // Gets a list of all open stage transition requests for the model version. // // This method is generated by Databricks SDK Code Generator. -func (a *ModelRegistryAPI) ListTransitionRequests(ctx context.Context, request ListTransitionRequestsRequest) *listing.PaginatingIterator[ListTransitionRequestsRequest, *ListTransitionRequestsResponse, Activity] { +func (a *ModelRegistryAPI) ListTransitionRequests(ctx context.Context, request ListTransitionRequestsRequest) listing.Iterator[Activity] { getNextPage := func(ctx context.Context, req ListTransitionRequestsRequest) (*ListTransitionRequestsResponse, error) { ctx = useragent.InContext(ctx, "sdk-feature", "pagination") @@ -1422,7 +1422,7 @@ func (a *ModelRegistryAPI) ListTransitionRequestsAll(ctx context.Context, reques // Lists all registry webhooks. // // This method is generated by Databricks SDK Code Generator. -func (a *ModelRegistryAPI) ListWebhooks(ctx context.Context, request ListWebhooksRequest) *listing.PaginatingIterator[ListWebhooksRequest, *ListRegistryWebhooks, RegistryWebhook] { +func (a *ModelRegistryAPI) ListWebhooks(ctx context.Context, request ListWebhooksRequest) listing.Iterator[RegistryWebhook] { getNextPage := func(ctx context.Context, req ListWebhooksRequest) (*ListRegistryWebhooks, error) { ctx = useragent.InContext(ctx, "sdk-feature", "pagination") @@ -1477,7 +1477,7 @@ func (a *ModelRegistryAPI) RenameModel(ctx context.Context, request RenameModelR // Searches for specific model versions based on the supplied __filter__. // // This method is generated by Databricks SDK Code Generator. -func (a *ModelRegistryAPI) SearchModelVersions(ctx context.Context, request SearchModelVersionsRequest) *listing.PaginatingIterator[SearchModelVersionsRequest, *SearchModelVersionsResponse, ModelVersion] { +func (a *ModelRegistryAPI) SearchModelVersions(ctx context.Context, request SearchModelVersionsRequest) listing.Iterator[ModelVersion] { getNextPage := func(ctx context.Context, req SearchModelVersionsRequest) (*SearchModelVersionsResponse, error) { ctx = useragent.InContext(ctx, "sdk-feature", "pagination") @@ -1517,7 +1517,7 @@ func (a *ModelRegistryAPI) SearchModelVersionsAll(ctx context.Context, request S // Search for registered models based on the specified __filter__. // // This method is generated by Databricks SDK Code Generator. -func (a *ModelRegistryAPI) SearchModels(ctx context.Context, request SearchModelsRequest) *listing.PaginatingIterator[SearchModelsRequest, *SearchModelsResponse, Model] { +func (a *ModelRegistryAPI) SearchModels(ctx context.Context, request SearchModelsRequest) listing.Iterator[Model] { getNextPage := func(ctx context.Context, req SearchModelsRequest) (*SearchModelsResponse, error) { ctx = useragent.InContext(ctx, "sdk-feature", "pagination") diff --git a/service/ml/model_registry_usage_test.go b/service/ml/model_registry_usage_test.go index 4d28afe5d..ff3c69793 100755 --- a/service/ml/model_registry_usage_test.go +++ b/service/ml/model_registry_usage_test.go @@ -58,7 +58,7 @@ func ExampleModelRegistryAPI_CreateComment_modelVersionComments() { } -func ExampleModelRegistryAPI_CreateModel_modelVersionComments() { +func ExampleModelRegistryAPI_CreateModel_modelVersions() { ctx := context.Background() w, err := databricks.NewWorkspaceClient() if err != nil { @@ -75,41 +75,41 @@ func ExampleModelRegistryAPI_CreateModel_modelVersionComments() { } -func ExampleModelRegistryAPI_CreateModel_models() { +func ExampleModelRegistryAPI_CreateModel_modelVersionComments() { ctx := context.Background() w, err := databricks.NewWorkspaceClient() if err != nil { panic(err) } - created, err := w.ModelRegistry.CreateModel(ctx, ml.CreateModelRequest{ + model, err := w.ModelRegistry.CreateModel(ctx, ml.CreateModelRequest{ Name: fmt.Sprintf("sdk-%x", time.Now().UnixNano()), }) if err != nil { panic(err) } - logger.Infof(ctx, "found %v", created) + logger.Infof(ctx, "found %v", model) } -func ExampleModelRegistryAPI_CreateModel_modelVersions() { +func ExampleModelRegistryAPI_CreateModel_models() { ctx := context.Background() w, err := databricks.NewWorkspaceClient() if err != nil { panic(err) } - model, err := w.ModelRegistry.CreateModel(ctx, ml.CreateModelRequest{ + created, err := w.ModelRegistry.CreateModel(ctx, ml.CreateModelRequest{ Name: fmt.Sprintf("sdk-%x", time.Now().UnixNano()), }) if err != nil { panic(err) } - logger.Infof(ctx, "found %v", model) + logger.Infof(ctx, "found %v", created) } -func ExampleModelRegistryAPI_CreateModelVersion_modelVersionComments() { +func ExampleModelRegistryAPI_CreateModelVersion_modelVersions() { ctx := context.Background() w, err := databricks.NewWorkspaceClient() if err != nil { @@ -124,18 +124,18 @@ func ExampleModelRegistryAPI_CreateModelVersion_modelVersionComments() { } logger.Infof(ctx, "found %v", model) - mv, err := w.ModelRegistry.CreateModelVersion(ctx, ml.CreateModelVersionRequest{ + created, err := w.ModelRegistry.CreateModelVersion(ctx, ml.CreateModelVersionRequest{ Name: model.RegisteredModel.Name, Source: "dbfs:/tmp", }) if err != nil { panic(err) } - logger.Infof(ctx, "found %v", mv) + logger.Infof(ctx, "found %v", created) } -func ExampleModelRegistryAPI_CreateModelVersion_modelVersions() { +func ExampleModelRegistryAPI_CreateModelVersion_modelVersionComments() { ctx := context.Background() w, err := databricks.NewWorkspaceClient() if err != nil { @@ -150,14 +150,14 @@ func ExampleModelRegistryAPI_CreateModelVersion_modelVersions() { } logger.Infof(ctx, "found %v", model) - created, err := w.ModelRegistry.CreateModelVersion(ctx, ml.CreateModelVersionRequest{ + mv, err := w.ModelRegistry.CreateModelVersion(ctx, ml.CreateModelVersionRequest{ Name: model.RegisteredModel.Name, Source: "dbfs:/tmp", }) if err != nil { panic(err) } - logger.Infof(ctx, "found %v", created) + logger.Infof(ctx, "found %v", mv) } diff --git a/service/oauth2/api.go b/service/oauth2/api.go index c876ecb8e..68e7e3ea1 100755 --- a/service/oauth2/api.go +++ b/service/oauth2/api.go @@ -57,7 +57,7 @@ type CustomAppIntegrationInterface interface { // account // // This method is generated by Databricks SDK Code Generator. - List(ctx context.Context) *listing.PaginatingIterator[struct{}, *GetCustomAppIntegrationsOutput, GetCustomAppIntegrationOutput] + List(ctx context.Context) listing.Iterator[GetCustomAppIntegrationOutput] // Get custom oauth app integrations. // @@ -155,7 +155,7 @@ func (a *CustomAppIntegrationAPI) GetByIntegrationId(ctx context.Context, integr // account // // This method is generated by Databricks SDK Code Generator. -func (a *CustomAppIntegrationAPI) List(ctx context.Context) *listing.PaginatingIterator[struct{}, *GetCustomAppIntegrationsOutput, GetCustomAppIntegrationOutput] { +func (a *CustomAppIntegrationAPI) List(ctx context.Context) listing.Iterator[GetCustomAppIntegrationOutput] { request := struct{}{} getNextPage := func(ctx context.Context, req struct{}) (*GetCustomAppIntegrationsOutput, error) { @@ -208,7 +208,7 @@ type OAuthPublishedAppsInterface interface { // Get all the available published OAuth apps in Databricks. // // This method is generated by Databricks SDK Code Generator. - List(ctx context.Context, request ListOAuthPublishedAppsRequest) *listing.PaginatingIterator[ListOAuthPublishedAppsRequest, *GetPublishedAppsOutput, PublishedAppOutput] + List(ctx context.Context, request ListOAuthPublishedAppsRequest) listing.Iterator[PublishedAppOutput] // Get all the published OAuth apps. // @@ -255,7 +255,7 @@ func (a *OAuthPublishedAppsAPI) Impl() OAuthPublishedAppsService { // Get all the available published OAuth apps in Databricks. // // This method is generated by Databricks SDK Code Generator. -func (a *OAuthPublishedAppsAPI) List(ctx context.Context, request ListOAuthPublishedAppsRequest) *listing.PaginatingIterator[ListOAuthPublishedAppsRequest, *GetPublishedAppsOutput, PublishedAppOutput] { +func (a *OAuthPublishedAppsAPI) List(ctx context.Context, request ListOAuthPublishedAppsRequest) listing.Iterator[PublishedAppOutput] { getNextPage := func(ctx context.Context, req ListOAuthPublishedAppsRequest) (*GetPublishedAppsOutput, error) { ctx = useragent.InContext(ctx, "sdk-feature", "pagination") @@ -336,7 +336,7 @@ type PublishedAppIntegrationInterface interface { // account // // This method is generated by Databricks SDK Code Generator. - List(ctx context.Context) *listing.PaginatingIterator[struct{}, *GetPublishedAppIntegrationsOutput, GetPublishedAppIntegrationOutput] + List(ctx context.Context) listing.Iterator[GetPublishedAppIntegrationOutput] // Get published oauth app integrations. // @@ -434,7 +434,7 @@ func (a *PublishedAppIntegrationAPI) GetByIntegrationId(ctx context.Context, int // account // // This method is generated by Databricks SDK Code Generator. -func (a *PublishedAppIntegrationAPI) List(ctx context.Context) *listing.PaginatingIterator[struct{}, *GetPublishedAppIntegrationsOutput, GetPublishedAppIntegrationOutput] { +func (a *PublishedAppIntegrationAPI) List(ctx context.Context) listing.Iterator[GetPublishedAppIntegrationOutput] { request := struct{}{} getNextPage := func(ctx context.Context, req struct{}) (*GetPublishedAppIntegrationsOutput, error) { @@ -504,7 +504,7 @@ type ServicePrincipalSecretsInterface interface { // the secret values. // // This method is generated by Databricks SDK Code Generator. - List(ctx context.Context, request ListServicePrincipalSecretsRequest) *listing.PaginatingIterator[ListServicePrincipalSecretsRequest, *ListServicePrincipalSecretsResponse, SecretInfo] + List(ctx context.Context, request ListServicePrincipalSecretsRequest) listing.Iterator[SecretInfo] // List service principal secrets. // @@ -595,7 +595,7 @@ func (a *ServicePrincipalSecretsAPI) DeleteByServicePrincipalIdAndSecretId(ctx c // the secret values. // // This method is generated by Databricks SDK Code Generator. -func (a *ServicePrincipalSecretsAPI) List(ctx context.Context, request ListServicePrincipalSecretsRequest) *listing.PaginatingIterator[ListServicePrincipalSecretsRequest, *ListServicePrincipalSecretsResponse, SecretInfo] { +func (a *ServicePrincipalSecretsAPI) List(ctx context.Context, request ListServicePrincipalSecretsRequest) listing.Iterator[SecretInfo] { getNextPage := func(ctx context.Context, req ListServicePrincipalSecretsRequest) (*ListServicePrincipalSecretsResponse, error) { ctx = useragent.InContext(ctx, "sdk-feature", "pagination") diff --git a/service/pipelines/api.go b/service/pipelines/api.go index 8310b91cd..2a443b426 100755 --- a/service/pipelines/api.go +++ b/service/pipelines/api.go @@ -91,7 +91,7 @@ type PipelinesInterface interface { // Retrieves events for a pipeline. // // This method is generated by Databricks SDK Code Generator. - ListPipelineEvents(ctx context.Context, request ListPipelineEventsRequest) *listing.PaginatingIterator[ListPipelineEventsRequest, *ListPipelineEventsResponse, PipelineEvent] + ListPipelineEvents(ctx context.Context, request ListPipelineEventsRequest) listing.Iterator[PipelineEvent] // List pipeline events. // @@ -110,7 +110,7 @@ type PipelinesInterface interface { // Lists pipelines defined in the Delta Live Tables system. // // This method is generated by Databricks SDK Code Generator. - ListPipelines(ctx context.Context, request ListPipelinesRequest) *listing.PaginatingIterator[ListPipelinesRequest, *ListPipelinesResponse, PipelineStateInfo] + ListPipelines(ctx context.Context, request ListPipelinesRequest) listing.Iterator[PipelineStateInfo] // List pipelines. // @@ -150,7 +150,7 @@ type PipelinesInterface interface { // Reset a pipeline. // // Resets a pipeline. - Reset(ctx context.Context, resetRequest ResetRequest) (*WaitGetPipelineRunning[any], error) + Reset(ctx context.Context, resetRequest ResetRequest) (*WaitGetPipelineRunning[struct{}], error) // Calls [PipelinesAPIInterface.Reset] and waits to reach RUNNING state // @@ -177,7 +177,7 @@ type PipelinesInterface interface { // // Stops the pipeline by canceling the active update. If there is no active // update for the pipeline, this request is a no-op. - Stop(ctx context.Context, stopRequest StopRequest) (*WaitGetPipelineIdle[any], error) + Stop(ctx context.Context, stopRequest StopRequest) (*WaitGetPipelineIdle[struct{}], error) // Calls [PipelinesAPIInterface.Stop] and waits to reach IDLE state // @@ -274,7 +274,7 @@ func (a *PipelinesAPI) WaitGetPipelineIdle(ctx context.Context, pipelineId strin type WaitGetPipelineIdle[R any] struct { Response *R PipelineId string `json:"pipeline_id"` - poll func(time.Duration, func(*GetPipelineResponse)) (*GetPipelineResponse, error) + Poll func(time.Duration, func(*GetPipelineResponse)) (*GetPipelineResponse, error) callback func(*GetPipelineResponse) timeout time.Duration } @@ -287,12 +287,12 @@ func (w *WaitGetPipelineIdle[R]) OnProgress(callback func(*GetPipelineResponse)) // Get the GetPipelineResponse with the default timeout of 20 minutes. func (w *WaitGetPipelineIdle[R]) Get() (*GetPipelineResponse, error) { - return w.poll(w.timeout, w.callback) + return w.Poll(w.timeout, w.callback) } // Get the GetPipelineResponse with custom timeout. func (w *WaitGetPipelineIdle[R]) GetWithTimeout(timeout time.Duration) (*GetPipelineResponse, error) { - return w.poll(timeout, w.callback) + return w.Poll(timeout, w.callback) } // WaitGetPipelineRunning repeatedly calls [PipelinesAPI.Get] and waits to reach RUNNING state @@ -328,7 +328,7 @@ func (a *PipelinesAPI) WaitGetPipelineRunning(ctx context.Context, pipelineId st type WaitGetPipelineRunning[R any] struct { Response *R PipelineId string `json:"pipeline_id"` - poll func(time.Duration, func(*GetPipelineResponse)) (*GetPipelineResponse, error) + Poll func(time.Duration, func(*GetPipelineResponse)) (*GetPipelineResponse, error) callback func(*GetPipelineResponse) timeout time.Duration } @@ -341,12 +341,12 @@ func (w *WaitGetPipelineRunning[R]) OnProgress(callback func(*GetPipelineRespons // Get the GetPipelineResponse with the default timeout of 20 minutes. func (w *WaitGetPipelineRunning[R]) Get() (*GetPipelineResponse, error) { - return w.poll(w.timeout, w.callback) + return w.Poll(w.timeout, w.callback) } // Get the GetPipelineResponse with custom timeout. func (w *WaitGetPipelineRunning[R]) GetWithTimeout(timeout time.Duration) (*GetPipelineResponse, error) { - return w.poll(timeout, w.callback) + return w.Poll(timeout, w.callback) } // Create a pipeline. @@ -441,7 +441,7 @@ func (a *PipelinesAPI) GetUpdateByPipelineIdAndUpdateId(ctx context.Context, pip // Retrieves events for a pipeline. // // This method is generated by Databricks SDK Code Generator. -func (a *PipelinesAPI) ListPipelineEvents(ctx context.Context, request ListPipelineEventsRequest) *listing.PaginatingIterator[ListPipelineEventsRequest, *ListPipelineEventsResponse, PipelineEvent] { +func (a *PipelinesAPI) ListPipelineEvents(ctx context.Context, request ListPipelineEventsRequest) listing.Iterator[PipelineEvent] { getNextPage := func(ctx context.Context, req ListPipelineEventsRequest) (*ListPipelineEventsResponse, error) { ctx = useragent.InContext(ctx, "sdk-feature", "pagination") @@ -490,7 +490,7 @@ func (a *PipelinesAPI) ListPipelineEventsByPipelineId(ctx context.Context, pipel // Lists pipelines defined in the Delta Live Tables system. // // This method is generated by Databricks SDK Code Generator. -func (a *PipelinesAPI) ListPipelines(ctx context.Context, request ListPipelinesRequest) *listing.PaginatingIterator[ListPipelinesRequest, *ListPipelinesResponse, PipelineStateInfo] { +func (a *PipelinesAPI) ListPipelines(ctx context.Context, request ListPipelinesRequest) listing.Iterator[PipelineStateInfo] { getNextPage := func(ctx context.Context, req ListPipelinesRequest) (*ListPipelinesResponse, error) { ctx = useragent.InContext(ctx, "sdk-feature", "pagination") @@ -597,15 +597,15 @@ func (a *PipelinesAPI) ListUpdatesByPipelineId(ctx context.Context, pipelineId s // Reset a pipeline. // // Resets a pipeline. -func (a *PipelinesAPI) Reset(ctx context.Context, resetRequest ResetRequest) (*WaitGetPipelineRunning[any], error) { +func (a *PipelinesAPI) Reset(ctx context.Context, resetRequest ResetRequest) (*WaitGetPipelineRunning[struct{}], error) { err := a.impl.Reset(ctx, resetRequest) if err != nil { return nil, err } - return &WaitGetPipelineRunning[any]{ + return &WaitGetPipelineRunning[struct{}]{ PipelineId: resetRequest.PipelineId, - poll: func(timeout time.Duration, callback func(*GetPipelineResponse)) (*GetPipelineResponse, error) { + Poll: func(timeout time.Duration, callback func(*GetPipelineResponse)) (*GetPipelineResponse, error) { return a.WaitGetPipelineRunning(ctx, resetRequest.PipelineId, timeout, callback) }, timeout: 20 * time.Minute, @@ -661,15 +661,15 @@ func (a *PipelinesAPI) StartUpdate(ctx context.Context, request StartUpdate) (*S // // Stops the pipeline by canceling the active update. If there is no active // update for the pipeline, this request is a no-op. -func (a *PipelinesAPI) Stop(ctx context.Context, stopRequest StopRequest) (*WaitGetPipelineIdle[any], error) { +func (a *PipelinesAPI) Stop(ctx context.Context, stopRequest StopRequest) (*WaitGetPipelineIdle[struct{}], error) { err := a.impl.Stop(ctx, stopRequest) if err != nil { return nil, err } - return &WaitGetPipelineIdle[any]{ + return &WaitGetPipelineIdle[struct{}]{ PipelineId: stopRequest.PipelineId, - poll: func(timeout time.Duration, callback func(*GetPipelineResponse)) (*GetPipelineResponse, error) { + Poll: func(timeout time.Duration, callback func(*GetPipelineResponse)) (*GetPipelineResponse, error) { return a.WaitGetPipelineIdle(ctx, stopRequest.PipelineId, timeout, callback) }, timeout: 20 * time.Minute, diff --git a/service/provisioning/api.go b/service/provisioning/api.go index e00c73992..4277836db 100755 --- a/service/provisioning/api.go +++ b/service/provisioning/api.go @@ -1766,7 +1766,7 @@ type WorkspacesInterface interface { // // [Account Console]: https://docs.databricks.com/administration-guide/account-settings-e2/account-console-e2.html // [Create a new workspace using the Account API]: http://docs.databricks.com/administration-guide/account-api/new-workspace.html - Update(ctx context.Context, updateWorkspaceRequest UpdateWorkspaceRequest) (*WaitGetWorkspaceRunning[any], error) + Update(ctx context.Context, updateWorkspaceRequest UpdateWorkspaceRequest) (*WaitGetWorkspaceRunning[struct{}], error) // Calls [WorkspacesAPIInterface.Update] and waits to reach RUNNING state // @@ -1847,7 +1847,7 @@ func (a *WorkspacesAPI) WaitGetWorkspaceRunning(ctx context.Context, workspaceId type WaitGetWorkspaceRunning[R any] struct { Response *R WorkspaceId int64 `json:"workspace_id"` - poll func(time.Duration, func(*Workspace)) (*Workspace, error) + Poll func(time.Duration, func(*Workspace)) (*Workspace, error) callback func(*Workspace) timeout time.Duration } @@ -1860,12 +1860,12 @@ func (w *WaitGetWorkspaceRunning[R]) OnProgress(callback func(*Workspace)) *Wait // Get the Workspace with the default timeout of 20 minutes. func (w *WaitGetWorkspaceRunning[R]) Get() (*Workspace, error) { - return w.poll(w.timeout, w.callback) + return w.Poll(w.timeout, w.callback) } // Get the Workspace with custom timeout. func (w *WaitGetWorkspaceRunning[R]) GetWithTimeout(timeout time.Duration) (*Workspace, error) { - return w.poll(timeout, w.callback) + return w.Poll(timeout, w.callback) } // Create a new workspace. @@ -1887,7 +1887,7 @@ func (a *WorkspacesAPI) Create(ctx context.Context, createWorkspaceRequest Creat return &WaitGetWorkspaceRunning[Workspace]{ Response: workspace, WorkspaceId: workspace.WorkspaceId, - poll: func(timeout time.Duration, callback func(*Workspace)) (*Workspace, error) { + Poll: func(timeout time.Duration, callback func(*Workspace)) (*Workspace, error) { return a.WaitGetWorkspaceRunning(ctx, workspace.WorkspaceId, timeout, callback) }, timeout: 20 * time.Minute, @@ -2174,15 +2174,15 @@ func (a *WorkspacesAPI) GetByWorkspaceName(ctx context.Context, name string) (*W // // [Account Console]: https://docs.databricks.com/administration-guide/account-settings-e2/account-console-e2.html // [Create a new workspace using the Account API]: http://docs.databricks.com/administration-guide/account-api/new-workspace.html -func (a *WorkspacesAPI) Update(ctx context.Context, updateWorkspaceRequest UpdateWorkspaceRequest) (*WaitGetWorkspaceRunning[any], error) { +func (a *WorkspacesAPI) Update(ctx context.Context, updateWorkspaceRequest UpdateWorkspaceRequest) (*WaitGetWorkspaceRunning[struct{}], error) { err := a.impl.Update(ctx, updateWorkspaceRequest) if err != nil { return nil, err } - return &WaitGetWorkspaceRunning[any]{ + return &WaitGetWorkspaceRunning[struct{}]{ WorkspaceId: updateWorkspaceRequest.WorkspaceId, - poll: func(timeout time.Duration, callback func(*Workspace)) (*Workspace, error) { + Poll: func(timeout time.Duration, callback func(*Workspace)) (*Workspace, error) { return a.WaitGetWorkspaceRunning(ctx, updateWorkspaceRequest.WorkspaceId, timeout, callback) }, timeout: 20 * time.Minute, diff --git a/service/serving/api.go b/service/serving/api.go index 2f95f986b..d76c73b2d 100755 --- a/service/serving/api.go +++ b/service/serving/api.go @@ -274,7 +274,7 @@ type ServingEndpointsInterface interface { // Retrieve all serving endpoints. // // This method is generated by Databricks SDK Code Generator. - List(ctx context.Context) *listing.PaginatingIterator[struct{}, *ListEndpointsResponse, ServingEndpoint] + List(ctx context.Context) listing.Iterator[ServingEndpoint] // Retrieve all serving endpoints. // @@ -411,7 +411,7 @@ func (a *ServingEndpointsAPI) WaitGetServingEndpointNotUpdating(ctx context.Cont type WaitGetServingEndpointNotUpdating[R any] struct { Response *R Name string `json:"name"` - poll func(time.Duration, func(*ServingEndpointDetailed)) (*ServingEndpointDetailed, error) + Poll func(time.Duration, func(*ServingEndpointDetailed)) (*ServingEndpointDetailed, error) callback func(*ServingEndpointDetailed) timeout time.Duration } @@ -424,12 +424,12 @@ func (w *WaitGetServingEndpointNotUpdating[R]) OnProgress(callback func(*Serving // Get the ServingEndpointDetailed with the default timeout of 20 minutes. func (w *WaitGetServingEndpointNotUpdating[R]) Get() (*ServingEndpointDetailed, error) { - return w.poll(w.timeout, w.callback) + return w.Poll(w.timeout, w.callback) } // Get the ServingEndpointDetailed with custom timeout. func (w *WaitGetServingEndpointNotUpdating[R]) GetWithTimeout(timeout time.Duration) (*ServingEndpointDetailed, error) { - return w.poll(timeout, w.callback) + return w.Poll(timeout, w.callback) } // Retrieve the logs associated with building the model's environment for a @@ -460,7 +460,7 @@ func (a *ServingEndpointsAPI) Create(ctx context.Context, createServingEndpoint return &WaitGetServingEndpointNotUpdating[ServingEndpointDetailed]{ Response: servingEndpointDetailed, Name: servingEndpointDetailed.Name, - poll: func(timeout time.Duration, callback func(*ServingEndpointDetailed)) (*ServingEndpointDetailed, error) { + Poll: func(timeout time.Duration, callback func(*ServingEndpointDetailed)) (*ServingEndpointDetailed, error) { return a.WaitGetServingEndpointNotUpdating(ctx, servingEndpointDetailed.Name, timeout, callback) }, timeout: 20 * time.Minute, @@ -578,7 +578,7 @@ func (a *ServingEndpointsAPI) GetPermissionsByServingEndpointId(ctx context.Cont // Retrieve all serving endpoints. // // This method is generated by Databricks SDK Code Generator. -func (a *ServingEndpointsAPI) List(ctx context.Context) *listing.PaginatingIterator[struct{}, *ListEndpointsResponse, ServingEndpoint] { +func (a *ServingEndpointsAPI) List(ctx context.Context) listing.Iterator[ServingEndpoint] { request := struct{}{} getNextPage := func(ctx context.Context, req struct{}) (*ListEndpointsResponse, error) { @@ -667,7 +667,7 @@ func (a *ServingEndpointsAPI) UpdateConfig(ctx context.Context, endpointCoreConf return &WaitGetServingEndpointNotUpdating[ServingEndpointDetailed]{ Response: servingEndpointDetailed, Name: servingEndpointDetailed.Name, - poll: func(timeout time.Duration, callback func(*ServingEndpointDetailed)) (*ServingEndpointDetailed, error) { + Poll: func(timeout time.Duration, callback func(*ServingEndpointDetailed)) (*ServingEndpointDetailed, error) { return a.WaitGetServingEndpointNotUpdating(ctx, servingEndpointDetailed.Name, timeout, callback) }, timeout: 20 * time.Minute, diff --git a/service/settings/api.go b/service/settings/api.go index c6b19e986..0fea6b533 100755 --- a/service/settings/api.go +++ b/service/settings/api.go @@ -65,7 +65,7 @@ type AccountIpAccessListsInterface interface { // Gets all IP access lists for the specified account. // // This method is generated by Databricks SDK Code Generator. - List(ctx context.Context) *listing.PaginatingIterator[struct{}, *GetIpAccessListsResponse, IpAccessListInfo] + List(ctx context.Context) listing.Iterator[IpAccessListInfo] // Get access lists. // @@ -233,7 +233,7 @@ func (a *AccountIpAccessListsAPI) GetByIpAccessListId(ctx context.Context, ipAcc // Gets all IP access lists for the specified account. // // This method is generated by Databricks SDK Code Generator. -func (a *AccountIpAccessListsAPI) List(ctx context.Context) *listing.PaginatingIterator[struct{}, *GetIpAccessListsResponse, IpAccessListInfo] { +func (a *AccountIpAccessListsAPI) List(ctx context.Context) listing.Iterator[IpAccessListInfo] { request := struct{}{} getNextPage := func(ctx context.Context, req struct{}) (*GetIpAccessListsResponse, error) { @@ -546,7 +546,7 @@ type IpAccessListsInterface interface { // Gets all IP access lists for the specified workspace. // // This method is generated by Databricks SDK Code Generator. - List(ctx context.Context) *listing.PaginatingIterator[struct{}, *ListIpAccessListResponse, IpAccessListInfo] + List(ctx context.Context) listing.Iterator[IpAccessListInfo] // Get access lists. // @@ -719,7 +719,7 @@ func (a *IpAccessListsAPI) GetByIpAccessListId(ctx context.Context, ipAccessList // Gets all IP access lists for the specified workspace. // // This method is generated by Databricks SDK Code Generator. -func (a *IpAccessListsAPI) List(ctx context.Context) *listing.PaginatingIterator[struct{}, *ListIpAccessListResponse, IpAccessListInfo] { +func (a *IpAccessListsAPI) List(ctx context.Context) listing.Iterator[IpAccessListInfo] { request := struct{}{} getNextPage := func(ctx context.Context, req struct{}) (*ListIpAccessListResponse, error) { @@ -936,7 +936,7 @@ type NetworkConnectivityInterface interface { // Gets an array of network connectivity configurations. // // This method is generated by Databricks SDK Code Generator. - ListNetworkConnectivityConfigurations(ctx context.Context, request ListNetworkConnectivityConfigurationsRequest) *listing.PaginatingIterator[ListNetworkConnectivityConfigurationsRequest, *ListNetworkConnectivityConfigurationsResponse, NetworkConnectivityConfiguration] + ListNetworkConnectivityConfigurations(ctx context.Context, request ListNetworkConnectivityConfigurationsRequest) listing.Iterator[NetworkConnectivityConfiguration] // List network connectivity configurations. // @@ -950,7 +950,7 @@ type NetworkConnectivityInterface interface { // Gets an array of private endpoint rules. // // This method is generated by Databricks SDK Code Generator. - ListPrivateEndpointRules(ctx context.Context, request ListPrivateEndpointRulesRequest) *listing.PaginatingIterator[ListPrivateEndpointRulesRequest, *ListNccAzurePrivateEndpointRulesResponse, NccAzurePrivateEndpointRule] + ListPrivateEndpointRules(ctx context.Context, request ListPrivateEndpointRulesRequest) listing.Iterator[NccAzurePrivateEndpointRule] // List private endpoint rules. // @@ -1116,7 +1116,7 @@ func (a *NetworkConnectivityAPI) GetPrivateEndpointRuleByNetworkConnectivityConf // Gets an array of network connectivity configurations. // // This method is generated by Databricks SDK Code Generator. -func (a *NetworkConnectivityAPI) ListNetworkConnectivityConfigurations(ctx context.Context, request ListNetworkConnectivityConfigurationsRequest) *listing.PaginatingIterator[ListNetworkConnectivityConfigurationsRequest, *ListNetworkConnectivityConfigurationsResponse, NetworkConnectivityConfiguration] { +func (a *NetworkConnectivityAPI) ListNetworkConnectivityConfigurations(ctx context.Context, request ListNetworkConnectivityConfigurationsRequest) listing.Iterator[NetworkConnectivityConfiguration] { getNextPage := func(ctx context.Context, req ListNetworkConnectivityConfigurationsRequest) (*ListNetworkConnectivityConfigurationsResponse, error) { ctx = useragent.InContext(ctx, "sdk-feature", "pagination") @@ -1155,7 +1155,7 @@ func (a *NetworkConnectivityAPI) ListNetworkConnectivityConfigurationsAll(ctx co // Gets an array of private endpoint rules. // // This method is generated by Databricks SDK Code Generator. -func (a *NetworkConnectivityAPI) ListPrivateEndpointRules(ctx context.Context, request ListPrivateEndpointRulesRequest) *listing.PaginatingIterator[ListPrivateEndpointRulesRequest, *ListNccAzurePrivateEndpointRulesResponse, NccAzurePrivateEndpointRule] { +func (a *NetworkConnectivityAPI) ListPrivateEndpointRules(ctx context.Context, request ListPrivateEndpointRulesRequest) listing.Iterator[NccAzurePrivateEndpointRule] { getNextPage := func(ctx context.Context, req ListPrivateEndpointRulesRequest) (*ListNccAzurePrivateEndpointRulesResponse, error) { ctx = useragent.InContext(ctx, "sdk-feature", "pagination") @@ -1358,7 +1358,7 @@ type TokenManagementInterface interface { // Lists all tokens associated with the specified workspace or user. // // This method is generated by Databricks SDK Code Generator. - List(ctx context.Context, request ListTokenManagementRequest) *listing.PaginatingIterator[ListTokenManagementRequest, *ListTokensResponse, TokenInfo] + List(ctx context.Context, request ListTokenManagementRequest) listing.Iterator[TokenInfo] // List all tokens. // @@ -1488,7 +1488,7 @@ func (a *TokenManagementAPI) GetPermissions(ctx context.Context) (*TokenPermissi // Lists all tokens associated with the specified workspace or user. // // This method is generated by Databricks SDK Code Generator. -func (a *TokenManagementAPI) List(ctx context.Context, request ListTokenManagementRequest) *listing.PaginatingIterator[ListTokenManagementRequest, *ListTokensResponse, TokenInfo] { +func (a *TokenManagementAPI) List(ctx context.Context, request ListTokenManagementRequest) listing.Iterator[TokenInfo] { getNextPage := func(ctx context.Context, req ListTokenManagementRequest) (*ListTokensResponse, error) { ctx = useragent.InContext(ctx, "sdk-feature", "pagination") @@ -1624,7 +1624,7 @@ type TokensInterface interface { // Lists all the valid tokens for a user-workspace pair. // // This method is generated by Databricks SDK Code Generator. - List(ctx context.Context) *listing.PaginatingIterator[struct{}, *ListPublicTokensResponse, PublicTokenInfo] + List(ctx context.Context) listing.Iterator[PublicTokenInfo] // List tokens. // @@ -1719,7 +1719,7 @@ func (a *TokensAPI) DeleteByTokenId(ctx context.Context, tokenId string) error { // Lists all the valid tokens for a user-workspace pair. // // This method is generated by Databricks SDK Code Generator. -func (a *TokensAPI) List(ctx context.Context) *listing.PaginatingIterator[struct{}, *ListPublicTokensResponse, PublicTokenInfo] { +func (a *TokensAPI) List(ctx context.Context) listing.Iterator[PublicTokenInfo] { request := struct{}{} getNextPage := func(ctx context.Context, req struct{}) (*ListPublicTokensResponse, error) { diff --git a/service/sharing/api.go b/service/sharing/api.go index e53b130c2..7254e0cd3 100755 --- a/service/sharing/api.go +++ b/service/sharing/api.go @@ -60,7 +60,7 @@ type CleanRoomsInterface interface { // a specific ordering of the elements in the array. // // This method is generated by Databricks SDK Code Generator. - List(ctx context.Context, request ListCleanRoomsRequest) *listing.PaginatingIterator[ListCleanRoomsRequest, *ListCleanRoomsResponse, CleanRoomInfo] + List(ctx context.Context, request ListCleanRoomsRequest) listing.Iterator[CleanRoomInfo] // List clean rooms. // @@ -176,7 +176,7 @@ func (a *CleanRoomsAPI) GetByNameArg(ctx context.Context, nameArg string) (*Clea // a specific ordering of the elements in the array. // // This method is generated by Databricks SDK Code Generator. -func (a *CleanRoomsAPI) List(ctx context.Context, request ListCleanRoomsRequest) *listing.PaginatingIterator[ListCleanRoomsRequest, *ListCleanRoomsResponse, CleanRoomInfo] { +func (a *CleanRoomsAPI) List(ctx context.Context, request ListCleanRoomsRequest) listing.Iterator[CleanRoomInfo] { getNextPage := func(ctx context.Context, req ListCleanRoomsRequest) (*ListCleanRoomsResponse, error) { ctx = useragent.InContext(ctx, "sdk-feature", "pagination") @@ -284,7 +284,7 @@ type ProvidersInterface interface { // specific ordering of the elements in the array. // // This method is generated by Databricks SDK Code Generator. - List(ctx context.Context, request ListProvidersRequest) *listing.PaginatingIterator[ListProvidersRequest, *ListProvidersResponse, ProviderInfo] + List(ctx context.Context, request ListProvidersRequest) listing.Iterator[ProviderInfo] // List providers. // @@ -312,7 +312,7 @@ type ProvidersInterface interface { // * the caller is a metastore admin, or * the caller is the owner. // // This method is generated by Databricks SDK Code Generator. - ListShares(ctx context.Context, request ListSharesRequest) *listing.PaginatingIterator[ListSharesRequest, *ListProviderSharesResponse, ProviderShare] + ListShares(ctx context.Context, request ListSharesRequest) listing.Iterator[ProviderShare] // List shares by Provider. // @@ -424,7 +424,7 @@ func (a *ProvidersAPI) GetByName(ctx context.Context, name string) (*ProviderInf // specific ordering of the elements in the array. // // This method is generated by Databricks SDK Code Generator. -func (a *ProvidersAPI) List(ctx context.Context, request ListProvidersRequest) *listing.PaginatingIterator[ListProvidersRequest, *ListProvidersResponse, ProviderInfo] { +func (a *ProvidersAPI) List(ctx context.Context, request ListProvidersRequest) listing.Iterator[ProviderInfo] { getNextPage := func(ctx context.Context, req ListProvidersRequest) (*ListProvidersResponse, error) { ctx = useragent.InContext(ctx, "sdk-feature", "pagination") @@ -487,7 +487,7 @@ func (a *ProvidersAPI) ProviderInfoNameToMetastoreIdMap(ctx context.Context, req // * the caller is a metastore admin, or * the caller is the owner. // // This method is generated by Databricks SDK Code Generator. -func (a *ProvidersAPI) ListShares(ctx context.Context, request ListSharesRequest) *listing.PaginatingIterator[ListSharesRequest, *ListProviderSharesResponse, ProviderShare] { +func (a *ProvidersAPI) ListShares(ctx context.Context, request ListSharesRequest) listing.Iterator[ProviderShare] { getNextPage := func(ctx context.Context, req ListSharesRequest) (*ListProviderSharesResponse, error) { ctx = useragent.InContext(ctx, "sdk-feature", "pagination") @@ -694,7 +694,7 @@ type RecipientsInterface interface { // guarantee of a specific ordering of the elements in the array. // // This method is generated by Databricks SDK Code Generator. - List(ctx context.Context, request ListRecipientsRequest) *listing.PaginatingIterator[ListRecipientsRequest, *ListRecipientsResponse, RecipientInfo] + List(ctx context.Context, request ListRecipientsRequest) listing.Iterator[RecipientInfo] // List share recipients. // @@ -842,7 +842,7 @@ func (a *RecipientsAPI) GetByName(ctx context.Context, name string) (*RecipientI // guarantee of a specific ordering of the elements in the array. // // This method is generated by Databricks SDK Code Generator. -func (a *RecipientsAPI) List(ctx context.Context, request ListRecipientsRequest) *listing.PaginatingIterator[ListRecipientsRequest, *ListRecipientsResponse, RecipientInfo] { +func (a *RecipientsAPI) List(ctx context.Context, request ListRecipientsRequest) listing.Iterator[RecipientInfo] { getNextPage := func(ctx context.Context, req ListRecipientsRequest) (*ListRecipientsResponse, error) { ctx = useragent.InContext(ctx, "sdk-feature", "pagination") @@ -982,7 +982,7 @@ type SharesInterface interface { // specific ordering of the elements in the array. // // This method is generated by Databricks SDK Code Generator. - List(ctx context.Context) *listing.PaginatingIterator[struct{}, *ListSharesResponse, ShareInfo] + List(ctx context.Context) listing.Iterator[ShareInfo] // List shares. // @@ -1119,7 +1119,7 @@ func (a *SharesAPI) GetByName(ctx context.Context, name string) (*ShareInfo, err // specific ordering of the elements in the array. // // This method is generated by Databricks SDK Code Generator. -func (a *SharesAPI) List(ctx context.Context) *listing.PaginatingIterator[struct{}, *ListSharesResponse, ShareInfo] { +func (a *SharesAPI) List(ctx context.Context) listing.Iterator[ShareInfo] { request := struct{}{} getNextPage := func(ctx context.Context, req struct{}) (*ListSharesResponse, error) { diff --git a/service/sql/api.go b/service/sql/api.go index 2b03d7247..31b10f0db 100755 --- a/service/sql/api.go +++ b/service/sql/api.go @@ -347,7 +347,7 @@ type DashboardsInterface interface { // Fetch a paginated list of dashboard objects. // // This method is generated by Databricks SDK Code Generator. - List(ctx context.Context, request ListDashboardsRequest) *listing.DeduplicatingIterator[Dashboard, string] + List(ctx context.Context, request ListDashboardsRequest) listing.Iterator[Dashboard] // Get dashboard objects. // @@ -460,7 +460,7 @@ func (a *DashboardsAPI) GetByDashboardId(ctx context.Context, dashboardId string // Fetch a paginated list of dashboard objects. // // This method is generated by Databricks SDK Code Generator. -func (a *DashboardsAPI) List(ctx context.Context, request ListDashboardsRequest) *listing.DeduplicatingIterator[Dashboard, string] { +func (a *DashboardsAPI) List(ctx context.Context, request ListDashboardsRequest) listing.Iterator[Dashboard] { request.Page = 1 // start iterating from the first page @@ -864,7 +864,7 @@ type QueriesInterface interface { // term. // // This method is generated by Databricks SDK Code Generator. - List(ctx context.Context, request ListQueriesRequest) *listing.DeduplicatingIterator[Query, string] + List(ctx context.Context, request ListQueriesRequest) listing.Iterator[Query] // Get a list of queries. // @@ -997,7 +997,7 @@ func (a *QueriesAPI) GetByQueryId(ctx context.Context, queryId string) (*Query, // term. // // This method is generated by Databricks SDK Code Generator. -func (a *QueriesAPI) List(ctx context.Context, request ListQueriesRequest) *listing.DeduplicatingIterator[Query, string] { +func (a *QueriesAPI) List(ctx context.Context, request ListQueriesRequest) listing.Iterator[Query] { request.Page = 1 // start iterating from the first page @@ -1127,7 +1127,7 @@ type QueryHistoryInterface interface { // You can filter by user ID, warehouse ID, status, and time range. // // This method is generated by Databricks SDK Code Generator. - List(ctx context.Context, request ListQueryHistoryRequest) *listing.PaginatingIterator[ListQueryHistoryRequest, *ListQueriesResponse, QueryInfo] + List(ctx context.Context, request ListQueryHistoryRequest) listing.Iterator[QueryInfo] // List Queries. // @@ -1175,7 +1175,7 @@ func (a *QueryHistoryAPI) Impl() QueryHistoryService { // You can filter by user ID, warehouse ID, status, and time range. // // This method is generated by Databricks SDK Code Generator. -func (a *QueryHistoryAPI) List(ctx context.Context, request ListQueryHistoryRequest) *listing.PaginatingIterator[ListQueryHistoryRequest, *ListQueriesResponse, QueryInfo] { +func (a *QueryHistoryAPI) List(ctx context.Context, request ListQueryHistoryRequest) listing.Iterator[QueryInfo] { getNextPage := func(ctx context.Context, req ListQueryHistoryRequest) (*ListQueriesResponse, error) { ctx = useragent.InContext(ctx, "sdk-feature", "pagination") @@ -1610,7 +1610,7 @@ type WarehousesInterface interface { // Update a warehouse. // // Updates the configuration for a SQL warehouse. - Edit(ctx context.Context, editWarehouseRequest EditWarehouseRequest) (*WaitGetWarehouseRunning[any], error) + Edit(ctx context.Context, editWarehouseRequest EditWarehouseRequest) (*WaitGetWarehouseRunning[struct{}], error) // Calls [WarehousesAPIInterface.Edit] and waits to reach RUNNING state // @@ -1663,7 +1663,7 @@ type WarehousesInterface interface { // Lists all SQL warehouses that a user has manager permissions on. // // This method is generated by Databricks SDK Code Generator. - List(ctx context.Context, request ListWarehousesRequest) *listing.PaginatingIterator[ListWarehousesRequest, *ListWarehousesResponse, EndpointInfo] + List(ctx context.Context, request ListWarehousesRequest) listing.Iterator[EndpointInfo] // List warehouses. // @@ -1705,7 +1705,7 @@ type WarehousesInterface interface { // Start a warehouse. // // Starts a SQL warehouse. - Start(ctx context.Context, startRequest StartRequest) (*WaitGetWarehouseRunning[any], error) + Start(ctx context.Context, startRequest StartRequest) (*WaitGetWarehouseRunning[struct{}], error) // Calls [WarehousesAPIInterface.Start] and waits to reach RUNNING state // @@ -1718,7 +1718,7 @@ type WarehousesInterface interface { // Stop a warehouse. // // Stops a SQL warehouse. - Stop(ctx context.Context, stopRequest StopRequest) (*WaitGetWarehouseStopped[any], error) + Stop(ctx context.Context, stopRequest StopRequest) (*WaitGetWarehouseStopped[struct{}], error) // Calls [WarehousesAPIInterface.Stop] and waits to reach STOPPED state // @@ -1802,7 +1802,7 @@ func (a *WarehousesAPI) WaitGetWarehouseRunning(ctx context.Context, id string, type WaitGetWarehouseRunning[R any] struct { Response *R Id string `json:"id"` - poll func(time.Duration, func(*GetWarehouseResponse)) (*GetWarehouseResponse, error) + Poll func(time.Duration, func(*GetWarehouseResponse)) (*GetWarehouseResponse, error) callback func(*GetWarehouseResponse) timeout time.Duration } @@ -1815,12 +1815,12 @@ func (w *WaitGetWarehouseRunning[R]) OnProgress(callback func(*GetWarehouseRespo // Get the GetWarehouseResponse with the default timeout of 20 minutes. func (w *WaitGetWarehouseRunning[R]) Get() (*GetWarehouseResponse, error) { - return w.poll(w.timeout, w.callback) + return w.Poll(w.timeout, w.callback) } // Get the GetWarehouseResponse with custom timeout. func (w *WaitGetWarehouseRunning[R]) GetWithTimeout(timeout time.Duration) (*GetWarehouseResponse, error) { - return w.poll(timeout, w.callback) + return w.Poll(timeout, w.callback) } // WaitGetWarehouseStopped repeatedly calls [WarehousesAPI.Get] and waits to reach STOPPED state @@ -1855,7 +1855,7 @@ func (a *WarehousesAPI) WaitGetWarehouseStopped(ctx context.Context, id string, type WaitGetWarehouseStopped[R any] struct { Response *R Id string `json:"id"` - poll func(time.Duration, func(*GetWarehouseResponse)) (*GetWarehouseResponse, error) + Poll func(time.Duration, func(*GetWarehouseResponse)) (*GetWarehouseResponse, error) callback func(*GetWarehouseResponse) timeout time.Duration } @@ -1868,12 +1868,12 @@ func (w *WaitGetWarehouseStopped[R]) OnProgress(callback func(*GetWarehouseRespo // Get the GetWarehouseResponse with the default timeout of 20 minutes. func (w *WaitGetWarehouseStopped[R]) Get() (*GetWarehouseResponse, error) { - return w.poll(w.timeout, w.callback) + return w.Poll(w.timeout, w.callback) } // Get the GetWarehouseResponse with custom timeout. func (w *WaitGetWarehouseStopped[R]) GetWithTimeout(timeout time.Duration) (*GetWarehouseResponse, error) { - return w.poll(timeout, w.callback) + return w.Poll(timeout, w.callback) } // Create a warehouse. @@ -1887,7 +1887,7 @@ func (a *WarehousesAPI) Create(ctx context.Context, createWarehouseRequest Creat return &WaitGetWarehouseRunning[CreateWarehouseResponse]{ Response: createWarehouseResponse, Id: createWarehouseResponse.Id, - poll: func(timeout time.Duration, callback func(*GetWarehouseResponse)) (*GetWarehouseResponse, error) { + Poll: func(timeout time.Duration, callback func(*GetWarehouseResponse)) (*GetWarehouseResponse, error) { return a.WaitGetWarehouseRunning(ctx, createWarehouseResponse.Id, timeout, callback) }, timeout: 20 * time.Minute, @@ -1941,15 +1941,15 @@ func (a *WarehousesAPI) DeleteById(ctx context.Context, id string) error { // Update a warehouse. // // Updates the configuration for a SQL warehouse. -func (a *WarehousesAPI) Edit(ctx context.Context, editWarehouseRequest EditWarehouseRequest) (*WaitGetWarehouseRunning[any], error) { +func (a *WarehousesAPI) Edit(ctx context.Context, editWarehouseRequest EditWarehouseRequest) (*WaitGetWarehouseRunning[struct{}], error) { err := a.impl.Edit(ctx, editWarehouseRequest) if err != nil { return nil, err } - return &WaitGetWarehouseRunning[any]{ + return &WaitGetWarehouseRunning[struct{}]{ Id: editWarehouseRequest.Id, - poll: func(timeout time.Duration, callback func(*GetWarehouseResponse)) (*GetWarehouseResponse, error) { + Poll: func(timeout time.Duration, callback func(*GetWarehouseResponse)) (*GetWarehouseResponse, error) { return a.WaitGetWarehouseRunning(ctx, editWarehouseRequest.Id, timeout, callback) }, timeout: 20 * time.Minute, @@ -2047,7 +2047,7 @@ func (a *WarehousesAPI) GetWorkspaceWarehouseConfig(ctx context.Context) (*GetWo // Lists all SQL warehouses that a user has manager permissions on. // // This method is generated by Databricks SDK Code Generator. -func (a *WarehousesAPI) List(ctx context.Context, request ListWarehousesRequest) *listing.PaginatingIterator[ListWarehousesRequest, *ListWarehousesResponse, EndpointInfo] { +func (a *WarehousesAPI) List(ctx context.Context, request ListWarehousesRequest) listing.Iterator[EndpointInfo] { getNextPage := func(ctx context.Context, req ListWarehousesRequest) (*ListWarehousesResponse, error) { ctx = useragent.InContext(ctx, "sdk-feature", "pagination") @@ -2147,15 +2147,15 @@ func (a *WarehousesAPI) SetWorkspaceWarehouseConfig(ctx context.Context, request // Start a warehouse. // // Starts a SQL warehouse. -func (a *WarehousesAPI) Start(ctx context.Context, startRequest StartRequest) (*WaitGetWarehouseRunning[any], error) { +func (a *WarehousesAPI) Start(ctx context.Context, startRequest StartRequest) (*WaitGetWarehouseRunning[struct{}], error) { err := a.impl.Start(ctx, startRequest) if err != nil { return nil, err } - return &WaitGetWarehouseRunning[any]{ + return &WaitGetWarehouseRunning[struct{}]{ Id: startRequest.Id, - poll: func(timeout time.Duration, callback func(*GetWarehouseResponse)) (*GetWarehouseResponse, error) { + Poll: func(timeout time.Duration, callback func(*GetWarehouseResponse)) (*GetWarehouseResponse, error) { return a.WaitGetWarehouseRunning(ctx, startRequest.Id, timeout, callback) }, timeout: 20 * time.Minute, @@ -2193,15 +2193,15 @@ func (a *WarehousesAPI) StartAndWait(ctx context.Context, startRequest StartRequ // Stop a warehouse. // // Stops a SQL warehouse. -func (a *WarehousesAPI) Stop(ctx context.Context, stopRequest StopRequest) (*WaitGetWarehouseStopped[any], error) { +func (a *WarehousesAPI) Stop(ctx context.Context, stopRequest StopRequest) (*WaitGetWarehouseStopped[struct{}], error) { err := a.impl.Stop(ctx, stopRequest) if err != nil { return nil, err } - return &WaitGetWarehouseStopped[any]{ + return &WaitGetWarehouseStopped[struct{}]{ Id: stopRequest.Id, - poll: func(timeout time.Duration, callback func(*GetWarehouseResponse)) (*GetWarehouseResponse, error) { + Poll: func(timeout time.Duration, callback func(*GetWarehouseResponse)) (*GetWarehouseResponse, error) { return a.WaitGetWarehouseStopped(ctx, stopRequest.Id, timeout, callback) }, timeout: 20 * time.Minute, diff --git a/service/sql/model.go b/service/sql/model.go index ea4e9e7f9..250184148 100755 --- a/service/sql/model.go +++ b/service/sql/model.go @@ -286,7 +286,6 @@ func (s ChannelInfo) MarshalJSON() ([]byte, error) { return marshal.Marshal(s) } -// Name of the channel type ChannelName string const ChannelNameChannelNameCurrent ChannelName = `CHANNEL_NAME_CURRENT` diff --git a/service/vectorsearch/api.go b/service/vectorsearch/api.go index 280142b53..115d0ab7f 100755 --- a/service/vectorsearch/api.go +++ b/service/vectorsearch/api.go @@ -56,7 +56,7 @@ type VectorSearchEndpointsInterface interface { // List all endpoints. // // This method is generated by Databricks SDK Code Generator. - ListEndpoints(ctx context.Context, request ListEndpointsRequest) *listing.PaginatingIterator[ListEndpointsRequest, *ListEndpointResponse, EndpointInfo] + ListEndpoints(ctx context.Context, request ListEndpointsRequest) listing.Iterator[EndpointInfo] // List all endpoints. // @@ -129,7 +129,7 @@ func (a *VectorSearchEndpointsAPI) WaitGetEndpointVectorSearchEndpointOnline(ctx type WaitGetEndpointVectorSearchEndpointOnline[R any] struct { Response *R EndpointName string `json:"endpoint_name"` - poll func(time.Duration, func(*EndpointInfo)) (*EndpointInfo, error) + Poll func(time.Duration, func(*EndpointInfo)) (*EndpointInfo, error) callback func(*EndpointInfo) timeout time.Duration } @@ -142,12 +142,12 @@ func (w *WaitGetEndpointVectorSearchEndpointOnline[R]) OnProgress(callback func( // Get the EndpointInfo with the default timeout of 20 minutes. func (w *WaitGetEndpointVectorSearchEndpointOnline[R]) Get() (*EndpointInfo, error) { - return w.poll(w.timeout, w.callback) + return w.Poll(w.timeout, w.callback) } // Get the EndpointInfo with custom timeout. func (w *WaitGetEndpointVectorSearchEndpointOnline[R]) GetWithTimeout(timeout time.Duration) (*EndpointInfo, error) { - return w.poll(timeout, w.callback) + return w.Poll(timeout, w.callback) } // Create an endpoint. @@ -161,7 +161,7 @@ func (a *VectorSearchEndpointsAPI) CreateEndpoint(ctx context.Context, createEnd return &WaitGetEndpointVectorSearchEndpointOnline[EndpointInfo]{ Response: endpointInfo, EndpointName: endpointInfo.Name, - poll: func(timeout time.Duration, callback func(*EndpointInfo)) (*EndpointInfo, error) { + Poll: func(timeout time.Duration, callback func(*EndpointInfo)) (*EndpointInfo, error) { return a.WaitGetEndpointVectorSearchEndpointOnline(ctx, endpointInfo.Name, timeout, callback) }, timeout: 20 * time.Minute, @@ -223,7 +223,7 @@ func (a *VectorSearchEndpointsAPI) GetEndpointByEndpointName(ctx context.Context // List all endpoints. // // This method is generated by Databricks SDK Code Generator. -func (a *VectorSearchEndpointsAPI) ListEndpoints(ctx context.Context, request ListEndpointsRequest) *listing.PaginatingIterator[ListEndpointsRequest, *ListEndpointResponse, EndpointInfo] { +func (a *VectorSearchEndpointsAPI) ListEndpoints(ctx context.Context, request ListEndpointsRequest) listing.Iterator[EndpointInfo] { getNextPage := func(ctx context.Context, req ListEndpointsRequest) (*ListEndpointResponse, error) { ctx = useragent.InContext(ctx, "sdk-feature", "pagination") @@ -300,7 +300,7 @@ type VectorSearchIndexesInterface interface { // List all indexes in the given endpoint. // // This method is generated by Databricks SDK Code Generator. - ListIndexes(ctx context.Context, request ListIndexesRequest) *listing.PaginatingIterator[ListIndexesRequest, *ListVectorIndexesResponse, MiniVectorIndex] + ListIndexes(ctx context.Context, request ListIndexesRequest) listing.Iterator[MiniVectorIndex] // List indexes. // @@ -414,7 +414,7 @@ func (a *VectorSearchIndexesAPI) GetIndexByIndexName(ctx context.Context, indexN // List all indexes in the given endpoint. // // This method is generated by Databricks SDK Code Generator. -func (a *VectorSearchIndexesAPI) ListIndexes(ctx context.Context, request ListIndexesRequest) *listing.PaginatingIterator[ListIndexesRequest, *ListVectorIndexesResponse, MiniVectorIndex] { +func (a *VectorSearchIndexesAPI) ListIndexes(ctx context.Context, request ListIndexesRequest) listing.Iterator[MiniVectorIndex] { getNextPage := func(ctx context.Context, req ListIndexesRequest) (*ListVectorIndexesResponse, error) { ctx = useragent.InContext(ctx, "sdk-feature", "pagination") diff --git a/service/workspace/api.go b/service/workspace/api.go index 30e49b7d0..14bc06ce3 100755 --- a/service/workspace/api.go +++ b/service/workspace/api.go @@ -56,7 +56,7 @@ type GitCredentialsInterface interface { // supported. // // This method is generated by Databricks SDK Code Generator. - List(ctx context.Context) *listing.PaginatingIterator[struct{}, *GetCredentialsResponse, CredentialInfo] + List(ctx context.Context) listing.Iterator[CredentialInfo] // Get Git credentials. // @@ -172,7 +172,7 @@ func (a *GitCredentialsAPI) GetByCredentialId(ctx context.Context, credentialId // supported. // // This method is generated by Databricks SDK Code Generator. -func (a *GitCredentialsAPI) List(ctx context.Context) *listing.PaginatingIterator[struct{}, *GetCredentialsResponse, CredentialInfo] { +func (a *GitCredentialsAPI) List(ctx context.Context) listing.Iterator[CredentialInfo] { request := struct{}{} getNextPage := func(ctx context.Context, req struct{}) (*GetCredentialsResponse, error) { @@ -327,7 +327,7 @@ type ReposInterface interface { // paginated with each page containing twenty repos. // // This method is generated by Databricks SDK Code Generator. - List(ctx context.Context, request ListReposRequest) *listing.PaginatingIterator[ListReposRequest, *ListReposResponse, RepoInfo] + List(ctx context.Context, request ListReposRequest) listing.Iterator[RepoInfo] // Get repos. // @@ -493,7 +493,7 @@ func (a *ReposAPI) GetPermissionsByRepoId(ctx context.Context, repoId string) (* // paginated with each page containing twenty repos. // // This method is generated by Databricks SDK Code Generator. -func (a *ReposAPI) List(ctx context.Context, request ListReposRequest) *listing.PaginatingIterator[ListReposRequest, *ListReposResponse, RepoInfo] { +func (a *ReposAPI) List(ctx context.Context, request ListReposRequest) listing.Iterator[RepoInfo] { getNextPage := func(ctx context.Context, req ListReposRequest) (*ListReposResponse, error) { ctx = useragent.InContext(ctx, "sdk-feature", "pagination") @@ -696,7 +696,7 @@ type SecretsInterface interface { // call. // // This method is generated by Databricks SDK Code Generator. - ListAcls(ctx context.Context, request ListAclsRequest) *listing.PaginatingIterator[ListAclsRequest, *ListAclsResponse, AclItem] + ListAcls(ctx context.Context, request ListAclsRequest) listing.Iterator[AclItem] // Lists ACLs. // @@ -728,7 +728,7 @@ type SecretsInterface interface { // API call. // // This method is generated by Databricks SDK Code Generator. - ListScopes(ctx context.Context) *listing.PaginatingIterator[struct{}, *ListScopesResponse, SecretScope] + ListScopes(ctx context.Context) listing.Iterator[SecretScope] // List all scopes. // @@ -752,7 +752,7 @@ type SecretsInterface interface { // call. // // This method is generated by Databricks SDK Code Generator. - ListSecrets(ctx context.Context, request ListSecretsRequest) *listing.PaginatingIterator[ListSecretsRequest, *ListSecretsResponse, SecretMetadata] + ListSecrets(ctx context.Context, request ListSecretsRequest) listing.Iterator[SecretMetadata] // List secret keys. // @@ -971,7 +971,7 @@ func (a *SecretsAPI) GetSecret(ctx context.Context, request GetSecretRequest) (* // call. // // This method is generated by Databricks SDK Code Generator. -func (a *SecretsAPI) ListAcls(ctx context.Context, request ListAclsRequest) *listing.PaginatingIterator[ListAclsRequest, *ListAclsResponse, AclItem] { +func (a *SecretsAPI) ListAcls(ctx context.Context, request ListAclsRequest) listing.Iterator[AclItem] { getNextPage := func(ctx context.Context, req ListAclsRequest) (*ListAclsResponse, error) { ctx = useragent.InContext(ctx, "sdk-feature", "pagination") @@ -1026,7 +1026,7 @@ func (a *SecretsAPI) ListAclsByScope(ctx context.Context, scope string) (*ListAc // API call. // // This method is generated by Databricks SDK Code Generator. -func (a *SecretsAPI) ListScopes(ctx context.Context) *listing.PaginatingIterator[struct{}, *ListScopesResponse, SecretScope] { +func (a *SecretsAPI) ListScopes(ctx context.Context) listing.Iterator[SecretScope] { request := struct{}{} getNextPage := func(ctx context.Context, req struct{}) (*ListScopesResponse, error) { @@ -1070,7 +1070,7 @@ func (a *SecretsAPI) ListScopesAll(ctx context.Context) ([]SecretScope, error) { // call. // // This method is generated by Databricks SDK Code Generator. -func (a *SecretsAPI) ListSecrets(ctx context.Context, request ListSecretsRequest) *listing.PaginatingIterator[ListSecretsRequest, *ListSecretsResponse, SecretMetadata] { +func (a *SecretsAPI) ListSecrets(ctx context.Context, request ListSecretsRequest) listing.Iterator[SecretMetadata] { getNextPage := func(ctx context.Context, req ListSecretsRequest) (*ListSecretsResponse, error) { ctx = useragent.InContext(ctx, "sdk-feature", "pagination") @@ -1264,7 +1264,7 @@ type WorkspaceInterface interface { // `RESOURCE_DOES_NOT_EXIST`. // // This method is generated by Databricks SDK Code Generator. - List(ctx context.Context, request ListWorkspaceRequest) *listing.PaginatingIterator[ListWorkspaceRequest, *ListResponse, ObjectInfo] + List(ctx context.Context, request ListWorkspaceRequest) listing.Iterator[ObjectInfo] // List contents. // @@ -1460,7 +1460,7 @@ func (a *WorkspaceAPI) Import(ctx context.Context, request Import) error { // `RESOURCE_DOES_NOT_EXIST`. // // This method is generated by Databricks SDK Code Generator. -func (a *WorkspaceAPI) List(ctx context.Context, request ListWorkspaceRequest) *listing.PaginatingIterator[ListWorkspaceRequest, *ListResponse, ObjectInfo] { +func (a *WorkspaceAPI) List(ctx context.Context, request ListWorkspaceRequest) listing.Iterator[ObjectInfo] { getNextPage := func(ctx context.Context, req ListWorkspaceRequest) (*ListResponse, error) { ctx = useragent.InContext(ctx, "sdk-feature", "pagination") From 1ea9c41dd806425331fc8a82428c8d0397879def Mon Sep 17 00:00:00 2001 From: Miles Yucht Date: Tue, 16 Jan 2024 09:51:07 +0100 Subject: [PATCH 2/6] add helper mocks --- listing/listing.go | 17 +++++++++++++++++ qa/poll/poll.go | 11 +++++++++++ 2 files changed, 28 insertions(+) create mode 100644 qa/poll/poll.go diff --git a/listing/listing.go b/listing/listing.go index 207169a47..7d445eed6 100644 --- a/listing/listing.go +++ b/listing/listing.go @@ -225,3 +225,20 @@ func (i *DeduplicatingIterator[T, Id]) HasNext(ctx context.Context) bool { } } } + +// A simple iterator over a slice. +type SliceIterator[T any] []T + +func (s *SliceIterator[T]) HasNext(_ context.Context) bool { + return len(*s) > 0 +} + +func (s *SliceIterator[T]) Next(_ context.Context) (T, error) { + var t T + if len(*s) == 0 { + return t, ErrNoMoreItems + } + v := (*s)[0] + *s = (*s)[1:] + return v, nil +} diff --git a/qa/poll/poll.go b/qa/poll/poll.go new file mode 100644 index 000000000..740ad3581 --- /dev/null +++ b/qa/poll/poll.go @@ -0,0 +1,11 @@ +package poll + +import "time" + +type PollFunc[R any] func(time.Duration, func(*R)) (*R, error) + +func Simple[R any](r R) PollFunc[R] { + return func(_ time.Duration, _ func(*R)) (*R, error) { + return &r, nil + } +} From a727baf36a968961a371c114384c916d8c2d2c67 Mon Sep 17 00:00:00 2001 From: Miles Yucht Date: Tue, 16 Jan 2024 09:59:03 +0100 Subject: [PATCH 3/6] tests --- listing/listing_test.go | 34 ++++++++++++++++++++++++++++++++++ qa/poll/poll_test.go | 20 ++++++++++++++++++++ 2 files changed, 54 insertions(+) create mode 100644 qa/poll/poll_test.go diff --git a/listing/listing_test.go b/listing/listing_test.go index 9893d5e28..cc925b6cb 100644 --- a/listing/listing_test.go +++ b/listing/listing_test.go @@ -215,3 +215,37 @@ func TestDedupeIterator(t *testing.T) { assert.ErrorIs(t, err, expectedErr) }) } + +func TestSliceIterator(t *testing.T) { + t.Run("basic iteration", func(t *testing.T) { + iterator := listing.SliceIterator[int]([]int{1, 2, 3, 4, 5}) + + for i := 1; i <= 5; i++ { + assert.True(t, iterator.HasNext(context.Background())) + item, err := iterator.Next(context.Background()) + assert.NoError(t, err) + assert.Equal(t, i, item) + } + + assert.False(t, iterator.HasNext(context.Background())) + _, err := iterator.Next(context.Background()) + assert.ErrorIs(t, err, listing.ErrNoMoreItems) + }) + + t.Run("ToSlice returns all items", func(t *testing.T) { + iterator := listing.SliceIterator[int]([]int{1, 2, 3, 4, 5}) + + items, err := listing.ToSlice[int](context.Background(), &iterator) + assert.NoError(t, err) + assert.Equal(t, []int{1, 2, 3, 4, 5}, items) + }) + + t.Run("ToSliceN returns the first N items", func(t *testing.T) { + iterator := listing.SliceIterator[int]([]int{1, 2, 3, 4, 5}) + + items, err := listing.ToSliceN[int](context.Background(), &iterator, 3) + assert.NoError(t, err) + assert.Equal(t, []int{1, 2, 3}, items) + }) + +} diff --git a/qa/poll/poll_test.go b/qa/poll/poll_test.go new file mode 100644 index 000000000..2fc9e82cd --- /dev/null +++ b/qa/poll/poll_test.go @@ -0,0 +1,20 @@ +package poll_test + +import ( + "testing" + + "github.com/databricks/databricks-sdk-go/qa/poll" + "github.com/databricks/databricks-sdk-go/service/sql" + "github.com/stretchr/testify/assert" +) + +func TestSimple(t *testing.T) { + waiter := sql.WaitGetWarehouseRunning[int]{ + Poll: poll.Simple(sql.GetWarehouseResponse{ + Id: "test", + }), + } + res, err := waiter.Get() + assert.NoError(t, err) + assert.Equal(t, "test", res.Id) +} From eeade35a7c435fe292daf26a24bc5b9287e55b80 Mon Sep 17 00:00:00 2001 From: Miles Yucht Date: Tue, 16 Jan 2024 10:05:37 +0100 Subject: [PATCH 4/6] remove extra --- .../pydevd_frame_evaluator.cp39-win_amd64.pyd | Bin 146480 -> 0 bytes .../pydevd_frame_evaluator.pyx | 747 ------------------ 2 files changed, 747 deletions(-) delete mode 100644 .venv/lib/python3.12/site-packages/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_evaluator.cp39-win_amd64.pyd delete mode 100644 .venv/lib/python3.12/site-packages/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_evaluator.pyx diff --git a/.venv/lib/python3.12/site-packages/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_evaluator.cp39-win_amd64.pyd b/.venv/lib/python3.12/site-packages/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_evaluator.cp39-win_amd64.pyd deleted file mode 100644 index 534232cf58af15dbbe684ae5890a5f5541880cc6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 146480 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 e5B<9OZ2N5Il6B frame_obj.f_code.co_filename - i = basename.rfind('/') - j = basename.rfind('\\') - if j > i: - i = j - if i >= 0: - basename = basename[i + 1:] - # remove ext - i = basename.rfind('.') - if i >= 0: - basename = basename[:i] - - co_name = frame_obj.f_code.co_name - - # In these cases we cannot create a dummy thread (an actual - # thread will be created later or tracing will already be set). - if basename == 'threading' and co_name in ('__bootstrap', '_bootstrap', '__bootstrap_inner', '_bootstrap_inner'): - self._can_create_dummy_thread = False - elif basename == 'pydev_monkey' and co_name == '__call__': - self._can_create_dummy_thread = False - elif basename == 'pydevd' and co_name in ('run', 'main', '_exec'): - self._can_create_dummy_thread = False - elif basename == 'pydevd_tracing': - self._can_create_dummy_thread = False - else: - self._can_create_dummy_thread = True - - # print('Can create dummy thread for thread started in: %s %s' % (basename, co_name)) - - cdef initialize_if_possible(self): - # Don't call threading.currentThread because if we're too early in the process - # we may create a dummy thread. - self.inside_frame_eval += 1 - - try: - thread_ident = _get_ident() - t = _thread_active.get(thread_ident) - if t is None: - if self._can_create_dummy_thread: - # Initialize the dummy thread and set the tracing (both are needed to - # actually stop on breakpoints). - t = threading.current_thread() - SetTrace(dummy_trace_dispatch) - else: - return # Cannot initialize until thread becomes active. - - if getattr(t, 'is_pydev_daemon_thread', False): - self.is_pydevd_thread = True - self.fully_initialized = True - else: - try: - additional_info = t.additional_info - if additional_info is None: - raise AttributeError() - except: - with _set_additional_thread_info_lock: - # If it's not there, set it within a lock to avoid any racing - # conditions. - additional_info = getattr(thread, 'additional_info', None) - if additional_info is None: - additional_info = PyDBAdditionalThreadInfo() - t.additional_info = additional_info - self.additional_info = additional_info - self.fully_initialized = True - finally: - self.inside_frame_eval -= 1 - - -cdef class FuncCodeInfo: - - cdef public str co_filename - cdef public str co_name - cdef public str canonical_normalized_filename - cdef bint always_skip_code - cdef public bint breakpoint_found - cdef public object new_code - - # When breakpoints_mtime != PyDb.mtime the validity of breakpoints have - # to be re-evaluated (if invalid a new FuncCodeInfo must be created and - # tracing can't be disabled for the related frames). - cdef public int breakpoints_mtime - - def __init__(self): - self.co_filename = '' - self.canonical_normalized_filename = '' - self.always_skip_code = False - - # If breakpoints are found but new_code is None, - # this means we weren't able to actually add the code - # where needed, so, fallback to tracing. - self.breakpoint_found = False - self.new_code = None - self.breakpoints_mtime = -1 - - -def dummy_trace_dispatch(frame, str event, arg): - if event == 'call': - if frame.f_trace is not None: - return frame.f_trace(frame, event, arg) - return None - - -def get_thread_info_py() -> ThreadInfo: - return get_thread_info(PyEval_GetFrame()) - - -cdef ThreadInfo get_thread_info(PyFrameObject * frame_obj): - ''' - Provides thread-related info. - - May return None if the thread is still not active. - ''' - cdef ThreadInfo thread_info - try: - # Note: changing to a `dict[thread.ident] = thread_info` had almost no - # effect in the performance. - thread_info = _thread_local_info.thread_info - except: - if frame_obj == NULL: - return None - thread_info = ThreadInfo() - thread_info.initialize(frame_obj) - thread_info.inside_frame_eval += 1 - try: - _thread_local_info.thread_info = thread_info - - # Note: _code_extra_index is not actually thread-related, - # but this is a good point to initialize it. - global _code_extra_index - if _code_extra_index == -1: - _code_extra_index = _PyEval_RequestCodeExtraIndex(release_co_extra) - - thread_info.initialize_if_possible() - finally: - thread_info.inside_frame_eval -= 1 - - return thread_info - - -def decref_py(obj): - ''' - Helper to be called from Python. - ''' - Py_DECREF(obj) - - -def get_func_code_info_py(thread_info, frame, code_obj) -> FuncCodeInfo: - ''' - Helper to be called from Python. - ''' - return get_func_code_info( thread_info, frame, code_obj) - - -cdef int _code_extra_index = -1 - -cdef FuncCodeInfo get_func_code_info(ThreadInfo thread_info, PyFrameObject * frame_obj, PyCodeObject * code_obj): - ''' - Provides code-object related info. - - Stores the gathered info in a cache in the code object itself. Note that - multiple threads can get the same info. - - get_thread_info() *must* be called at least once before get_func_code_info() - to initialize _code_extra_index. - - ''' - # f_code = code_obj - # DEBUG = f_code.co_filename.endswith('_debugger_case_multiprocessing.py') - # if DEBUG: - # print('get_func_code_info', f_code.co_name, f_code.co_filename) - - cdef object main_debugger = GlobalDebuggerHolder.global_dbg - thread_info.force_stay_in_untraced_mode = False # This is an output value of the function. - - cdef PyObject * extra - _PyCode_GetExtra( code_obj, _code_extra_index, & extra) - if extra is not NULL: - extra_obj = extra - if extra_obj is not NULL: - func_code_info_obj = extra_obj - if func_code_info_obj.breakpoints_mtime == main_debugger.mtime: - # if DEBUG: - # print('get_func_code_info: matched mtime', f_code.co_name, f_code.co_filename) - - return func_code_info_obj - - cdef str co_filename = code_obj.co_filename - cdef str co_name = code_obj.co_name - cdef dict cache_file_type - cdef tuple cache_file_type_key - - func_code_info = FuncCodeInfo() - func_code_info.breakpoints_mtime = main_debugger.mtime - - func_code_info.co_filename = co_filename - func_code_info.co_name = co_name - - if not func_code_info.always_skip_code: - try: - abs_path_real_path_and_base = NORM_PATHS_AND_BASE_CONTAINER[co_filename] - except: - abs_path_real_path_and_base = get_abs_path_real_path_and_base_from_frame(frame_obj) - - func_code_info.canonical_normalized_filename = abs_path_real_path_and_base[1] - - cache_file_type = main_debugger.get_cache_file_type() - # Note: this cache key must be the same from PyDB.get_file_type() -- see it for comments - # on the cache. - cache_file_type_key = (frame_obj.f_code.co_firstlineno, abs_path_real_path_and_base[0], frame_obj.f_code) - try: - file_type = cache_file_type[cache_file_type_key] # Make it faster - except: - file_type = main_debugger.get_file_type(frame_obj, abs_path_real_path_and_base) # we don't want to debug anything related to pydevd - - if file_type is not None: - func_code_info.always_skip_code = True - - if not func_code_info.always_skip_code: - if main_debugger is not None: - - breakpoints: dict = main_debugger.breakpoints.get(func_code_info.canonical_normalized_filename) - function_breakpoint: object = main_debugger.function_breakpoint_name_to_breakpoint.get(func_code_info.co_name) - # print('\n---') - # print(main_debugger.breakpoints) - # print(func_code_info.canonical_normalized_filename) - # print(main_debugger.breakpoints.get(func_code_info.canonical_normalized_filename)) - code_obj_py: object = code_obj - cached_code_obj_info: object = _cache.get(code_obj_py) - if cached_code_obj_info: - # The cache is for new code objects, so, in this case it's already - # using the new code and we can't change it as this is a generator! - # There's still a catch though: even though we don't replace the code, - # we may not want to go into tracing mode (as would usually happen - # when the new_code is None). - func_code_info.new_code = None - breakpoint_found, thread_info.force_stay_in_untraced_mode = \ - cached_code_obj_info.compute_force_stay_in_untraced_mode(breakpoints) - func_code_info.breakpoint_found = breakpoint_found - - elif function_breakpoint: - # Go directly into tracing mode - func_code_info.breakpoint_found = True - func_code_info.new_code = None - - elif breakpoints: - # if DEBUG: - # print('found breakpoints', code_obj_py.co_name, breakpoints) - - # Note: new_code can be None if unable to generate. - # It should automatically put the new code object in the cache. - breakpoint_found, func_code_info.new_code = generate_code_with_breakpoints(code_obj_py, breakpoints) - func_code_info.breakpoint_found = breakpoint_found - - Py_INCREF(func_code_info) - _PyCode_SetExtra( code_obj, _code_extra_index, func_code_info) - - return func_code_info - - -cdef class _CodeLineInfo: - - cdef public dict line_to_offset - cdef public int first_line - cdef public int last_line - - def __init__(self, dict line_to_offset, int first_line, int last_line): - self.line_to_offset = line_to_offset - self.first_line = first_line - self.last_line = last_line - - -# Note: this method has a version in pure-python too. -def _get_code_line_info(code_obj): - line_to_offset: dict = {} - first_line: int = None - last_line: int = None - - cdef int offset - cdef int line - - for offset, line in dis.findlinestarts(code_obj): - line_to_offset[line] = offset - - if line_to_offset: - first_line = min(line_to_offset) - last_line = max(line_to_offset) - return _CodeLineInfo(line_to_offset, first_line, last_line) - - -# Note: this is a cache where the key is the code objects we create ourselves so that -# we always return the same code object for generators. -# (so, we don't have a cache from the old code to the new info -- that's actually -# handled by the cython side in `FuncCodeInfo get_func_code_info` by providing the -# same code info if the debugger mtime is still the same). -_cache: dict = {} - -def get_cached_code_obj_info_py(code_obj_py): - ''' - :return _CacheValue: - :note: on cython use _cache.get(code_obj_py) directly. - ''' - return _cache.get(code_obj_py) - - -cdef class _CacheValue(object): - - cdef public object code_obj_py - cdef public _CodeLineInfo code_line_info - cdef public set breakpoints_hit_at_lines - cdef public set code_lines_as_set - - def __init__(self, object code_obj_py, _CodeLineInfo code_line_info, set breakpoints_hit_at_lines): - ''' - :param code_obj_py: - :param _CodeLineInfo code_line_info: - :param set[int] breakpoints_hit_at_lines: - ''' - self.code_obj_py = code_obj_py - self.code_line_info = code_line_info - self.breakpoints_hit_at_lines = breakpoints_hit_at_lines - self.code_lines_as_set = set(code_line_info.line_to_offset) - - cpdef compute_force_stay_in_untraced_mode(self, breakpoints): - ''' - :param breakpoints: - set(breakpoint_lines) or dict(breakpoint_line->breakpoint info) - :return tuple(breakpoint_found, force_stay_in_untraced_mode) - ''' - cdef bint force_stay_in_untraced_mode - cdef bint breakpoint_found - cdef set target_breakpoints - - force_stay_in_untraced_mode = False - - target_breakpoints = self.code_lines_as_set.intersection(breakpoints) - breakpoint_found = bool(target_breakpoints) - - if not breakpoint_found: - force_stay_in_untraced_mode = True - else: - force_stay_in_untraced_mode = self.breakpoints_hit_at_lines.issuperset(set(breakpoints)) - - return breakpoint_found, force_stay_in_untraced_mode - -def generate_code_with_breakpoints_py(object code_obj_py, dict breakpoints): - return generate_code_with_breakpoints(code_obj_py, breakpoints) - -# DEBUG = True -# debug_helper = DebugHelper() - -cdef generate_code_with_breakpoints(object code_obj_py, dict breakpoints): - ''' - :param breakpoints: - dict where the keys are the breakpoint lines. - :return tuple(breakpoint_found, new_code) - ''' - # The cache is needed for generator functions, because after each yield a new frame - # is created but the former code object is used (so, check if code_to_modify is - # already there and if not cache based on the new code generated). - - cdef bint success - cdef int breakpoint_line - cdef bint breakpoint_found - cdef _CacheValue cache_value - cdef set breakpoints_hit_at_lines - cdef dict line_to_offset - - assert code_obj_py not in _cache, 'If a code object is cached, that same code object must be reused.' - -# if DEBUG: -# initial_code_obj_py = code_obj_py - - code_line_info = _get_code_line_info(code_obj_py) - - success = True - - breakpoints_hit_at_lines = set() - line_to_offset = code_line_info.line_to_offset - - for breakpoint_line in breakpoints: - if breakpoint_line in line_to_offset: - breakpoints_hit_at_lines.add(breakpoint_line) - - if breakpoints_hit_at_lines: - success, new_code = insert_pydevd_breaks( - code_obj_py, - breakpoints_hit_at_lines, - code_line_info - ) - - if not success: - code_obj_py = None - else: - code_obj_py = new_code - - breakpoint_found = bool(breakpoints_hit_at_lines) - if breakpoint_found and success: -# if DEBUG: -# op_number = debug_helper.write_dis( -# 'inserting code, breaks at: %s' % (list(breakpoints),), -# initial_code_obj_py -# ) -# -# debug_helper.write_dis( -# 'after inserting code, breaks at: %s' % (list(breakpoints,)), -# code_obj_py, -# op_number=op_number, -# ) - - cache_value = _CacheValue(code_obj_py, code_line_info, breakpoints_hit_at_lines) - _cache[code_obj_py] = cache_value - - return breakpoint_found, code_obj_py - -import sys - -cdef bint IS_PY_39_OWNARDS = sys.version_info[:2] >= (3, 9) - -def frame_eval_func(): - cdef PyThreadState *state = PyThreadState_Get() - if IS_PY_39_OWNARDS: - state.interp.eval_frame = <_PyFrameEvalFunction *> get_bytecode_while_frame_eval_39 - else: - state.interp.eval_frame = <_PyFrameEvalFunction *> get_bytecode_while_frame_eval_38 - dummy_tracing_holder.set_trace_func(dummy_trace_dispatch) - - -def stop_frame_eval(): - cdef PyThreadState *state = PyThreadState_Get() - state.interp.eval_frame = _PyEval_EvalFrameDefault - -# During the build we'll generate 2 versions of the code below so that we're compatible with -# Python 3.9, which receives a "PyThreadState* tstate" as the first parameter and Python 3.6-3.8 -# which doesn't. -### WARNING: GENERATED CODE, DO NOT EDIT! -### WARNING: GENERATED CODE, DO NOT EDIT! -### WARNING: GENERATED CODE, DO NOT EDIT! -cdef PyObject * get_bytecode_while_frame_eval_38(PyFrameObject * frame_obj, int exc): - ''' - This function makes the actual evaluation and changes the bytecode to a version - where programmatic breakpoints are added. - ''' - if GlobalDebuggerHolder is None or _thread_local_info is None or exc: - # Sometimes during process shutdown these global variables become None - return CALL_EvalFrameDefault_38(frame_obj, exc) - - # co_filename: str = frame_obj.f_code.co_filename - # if co_filename.endswith('threading.py'): - # return CALL_EvalFrameDefault_38(frame_obj, exc) - - cdef ThreadInfo thread_info - cdef int STATE_SUSPEND = 2 - cdef int CMD_STEP_INTO = 107 - cdef int CMD_STEP_OVER = 108 - cdef int CMD_STEP_OVER_MY_CODE = 159 - cdef int CMD_STEP_INTO_MY_CODE = 144 - cdef int CMD_STEP_INTO_COROUTINE = 206 - cdef int CMD_SMART_STEP_INTO = 128 - cdef bint can_skip = True - try: - thread_info = _thread_local_info.thread_info - except: - thread_info = get_thread_info(frame_obj) - if thread_info is None: - return CALL_EvalFrameDefault_38(frame_obj, exc) - - if thread_info.inside_frame_eval: - return CALL_EvalFrameDefault_38(frame_obj, exc) - - if not thread_info.fully_initialized: - thread_info.initialize_if_possible() - if not thread_info.fully_initialized: - return CALL_EvalFrameDefault_38(frame_obj, exc) - - # Can only get additional_info when fully initialized. - cdef PyDBAdditionalThreadInfo additional_info = thread_info.additional_info - if thread_info.is_pydevd_thread or additional_info.is_tracing: - # Make sure that we don't trace pydevd threads or inside our own calls. - return CALL_EvalFrameDefault_38(frame_obj, exc) - - # frame = frame_obj - # DEBUG = frame.f_code.co_filename.endswith('_debugger_case_tracing.py') - # if DEBUG: - # print('get_bytecode_while_frame_eval', frame.f_lineno, frame.f_code.co_name, frame.f_code.co_filename) - - thread_info.inside_frame_eval += 1 - additional_info.is_tracing = True - try: - main_debugger: object = GlobalDebuggerHolder.global_dbg - if main_debugger is None: - return CALL_EvalFrameDefault_38(frame_obj, exc) - frame = frame_obj - - if thread_info.thread_trace_func is None: - trace_func, apply_to_global = fix_top_level_trace_and_get_trace_func(main_debugger, frame) - if apply_to_global: - thread_info.thread_trace_func = trace_func - - if additional_info.pydev_step_cmd in (CMD_STEP_INTO, CMD_STEP_INTO_MY_CODE, CMD_STEP_INTO_COROUTINE, CMD_SMART_STEP_INTO) or \ - main_debugger.break_on_caught_exceptions or \ - main_debugger.break_on_user_uncaught_exceptions or \ - main_debugger.has_plugin_exception_breaks or \ - main_debugger.signature_factory or \ - additional_info.pydev_step_cmd in (CMD_STEP_OVER, CMD_STEP_OVER_MY_CODE) and main_debugger.show_return_values and frame.f_back is additional_info.pydev_step_stop: - - # if DEBUG: - # print('get_bytecode_while_frame_eval enabled trace') - if thread_info.thread_trace_func is not None: - frame.f_trace = thread_info.thread_trace_func - else: - frame.f_trace = main_debugger.trace_dispatch - else: - func_code_info: FuncCodeInfo = get_func_code_info(thread_info, frame_obj, frame_obj.f_code) - # if DEBUG: - # print('get_bytecode_while_frame_eval always skip', func_code_info.always_skip_code) - if not func_code_info.always_skip_code: - - if main_debugger.has_plugin_line_breaks or main_debugger.has_plugin_exception_breaks: - can_skip = main_debugger.plugin.can_skip(main_debugger, frame_obj) - - if not can_skip: - # if DEBUG: - # print('get_bytecode_while_frame_eval not can_skip') - if thread_info.thread_trace_func is not None: - frame.f_trace = thread_info.thread_trace_func - else: - frame.f_trace = main_debugger.trace_dispatch - - if can_skip and func_code_info.breakpoint_found: - # if DEBUG: - # print('get_bytecode_while_frame_eval new_code', func_code_info.new_code) - if not thread_info.force_stay_in_untraced_mode: - # If breakpoints are found but new_code is None, - # this means we weren't able to actually add the code - # where needed, so, fallback to tracing. - if func_code_info.new_code is None: - if thread_info.thread_trace_func is not None: - frame.f_trace = thread_info.thread_trace_func - else: - frame.f_trace = main_debugger.trace_dispatch - else: - # print('Using frame eval break for', frame_obj.f_code.co_name) - update_globals_dict( frame_obj.f_globals) - Py_INCREF(func_code_info.new_code) - old = frame_obj.f_code - frame_obj.f_code = func_code_info.new_code - Py_DECREF(old) - else: - # When we're forcing to stay in traced mode we need to - # update the globals dict (because this means that we're reusing - # a previous code which had breakpoints added in a new frame). - update_globals_dict( frame_obj.f_globals) - - finally: - thread_info.inside_frame_eval -= 1 - additional_info.is_tracing = False - - return CALL_EvalFrameDefault_38(frame_obj, exc) -### WARNING: GENERATED CODE, DO NOT EDIT! -### WARNING: GENERATED CODE, DO NOT EDIT! -### WARNING: GENERATED CODE, DO NOT EDIT! - - -### WARNING: GENERATED CODE, DO NOT EDIT! -### WARNING: GENERATED CODE, DO NOT EDIT! -### WARNING: GENERATED CODE, DO NOT EDIT! -cdef PyObject * get_bytecode_while_frame_eval_39(PyThreadState* tstate, PyFrameObject * frame_obj, int exc): - ''' - This function makes the actual evaluation and changes the bytecode to a version - where programmatic breakpoints are added. - ''' - if GlobalDebuggerHolder is None or _thread_local_info is None or exc: - # Sometimes during process shutdown these global variables become None - return CALL_EvalFrameDefault_39(tstate, frame_obj, exc) - - # co_filename: str = frame_obj.f_code.co_filename - # if co_filename.endswith('threading.py'): - # return CALL_EvalFrameDefault_39(tstate, frame_obj, exc) - - cdef ThreadInfo thread_info - cdef int STATE_SUSPEND = 2 - cdef int CMD_STEP_INTO = 107 - cdef int CMD_STEP_OVER = 108 - cdef int CMD_STEP_OVER_MY_CODE = 159 - cdef int CMD_STEP_INTO_MY_CODE = 144 - cdef int CMD_STEP_INTO_COROUTINE = 206 - cdef int CMD_SMART_STEP_INTO = 128 - cdef bint can_skip = True - try: - thread_info = _thread_local_info.thread_info - except: - thread_info = get_thread_info(frame_obj) - if thread_info is None: - return CALL_EvalFrameDefault_39(tstate, frame_obj, exc) - - if thread_info.inside_frame_eval: - return CALL_EvalFrameDefault_39(tstate, frame_obj, exc) - - if not thread_info.fully_initialized: - thread_info.initialize_if_possible() - if not thread_info.fully_initialized: - return CALL_EvalFrameDefault_39(tstate, frame_obj, exc) - - # Can only get additional_info when fully initialized. - cdef PyDBAdditionalThreadInfo additional_info = thread_info.additional_info - if thread_info.is_pydevd_thread or additional_info.is_tracing: - # Make sure that we don't trace pydevd threads or inside our own calls. - return CALL_EvalFrameDefault_39(tstate, frame_obj, exc) - - # frame = frame_obj - # DEBUG = frame.f_code.co_filename.endswith('_debugger_case_tracing.py') - # if DEBUG: - # print('get_bytecode_while_frame_eval', frame.f_lineno, frame.f_code.co_name, frame.f_code.co_filename) - - thread_info.inside_frame_eval += 1 - additional_info.is_tracing = True - try: - main_debugger: object = GlobalDebuggerHolder.global_dbg - if main_debugger is None: - return CALL_EvalFrameDefault_39(tstate, frame_obj, exc) - frame = frame_obj - - if thread_info.thread_trace_func is None: - trace_func, apply_to_global = fix_top_level_trace_and_get_trace_func(main_debugger, frame) - if apply_to_global: - thread_info.thread_trace_func = trace_func - - if additional_info.pydev_step_cmd in (CMD_STEP_INTO, CMD_STEP_INTO_MY_CODE, CMD_STEP_INTO_COROUTINE, CMD_SMART_STEP_INTO) or \ - main_debugger.break_on_caught_exceptions or \ - main_debugger.break_on_user_uncaught_exceptions or \ - main_debugger.has_plugin_exception_breaks or \ - main_debugger.signature_factory or \ - additional_info.pydev_step_cmd in (CMD_STEP_OVER, CMD_STEP_OVER_MY_CODE) and main_debugger.show_return_values and frame.f_back is additional_info.pydev_step_stop: - - # if DEBUG: - # print('get_bytecode_while_frame_eval enabled trace') - if thread_info.thread_trace_func is not None: - frame.f_trace = thread_info.thread_trace_func - else: - frame.f_trace = main_debugger.trace_dispatch - else: - func_code_info: FuncCodeInfo = get_func_code_info(thread_info, frame_obj, frame_obj.f_code) - # if DEBUG: - # print('get_bytecode_while_frame_eval always skip', func_code_info.always_skip_code) - if not func_code_info.always_skip_code: - - if main_debugger.has_plugin_line_breaks or main_debugger.has_plugin_exception_breaks: - can_skip = main_debugger.plugin.can_skip(main_debugger, frame_obj) - - if not can_skip: - # if DEBUG: - # print('get_bytecode_while_frame_eval not can_skip') - if thread_info.thread_trace_func is not None: - frame.f_trace = thread_info.thread_trace_func - else: - frame.f_trace = main_debugger.trace_dispatch - - if can_skip and func_code_info.breakpoint_found: - # if DEBUG: - # print('get_bytecode_while_frame_eval new_code', func_code_info.new_code) - if not thread_info.force_stay_in_untraced_mode: - # If breakpoints are found but new_code is None, - # this means we weren't able to actually add the code - # where needed, so, fallback to tracing. - if func_code_info.new_code is None: - if thread_info.thread_trace_func is not None: - frame.f_trace = thread_info.thread_trace_func - else: - frame.f_trace = main_debugger.trace_dispatch - else: - # print('Using frame eval break for', frame_obj.f_code.co_name) - update_globals_dict( frame_obj.f_globals) - Py_INCREF(func_code_info.new_code) - old = frame_obj.f_code - frame_obj.f_code = func_code_info.new_code - Py_DECREF(old) - else: - # When we're forcing to stay in traced mode we need to - # update the globals dict (because this means that we're reusing - # a previous code which had breakpoints added in a new frame). - update_globals_dict( frame_obj.f_globals) - - finally: - thread_info.inside_frame_eval -= 1 - additional_info.is_tracing = False - - return CALL_EvalFrameDefault_39(tstate, frame_obj, exc) -### WARNING: GENERATED CODE, DO NOT EDIT! -### WARNING: GENERATED CODE, DO NOT EDIT! -### WARNING: GENERATED CODE, DO NOT EDIT! - From fb1ce56a320c893db3f5ff5afd069e959603bf9e Mon Sep 17 00:00:00 2001 From: Miles Yucht Date: Tue, 16 Jan 2024 10:09:19 +0100 Subject: [PATCH 5/6] tests --- apierr/errors_test.go | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/apierr/errors_test.go b/apierr/errors_test.go index 309f7f244..dfd92760e 100644 --- a/apierr/errors_test.go +++ b/apierr/errors_test.go @@ -22,3 +22,17 @@ func TestGetAPIErrorHandlesEmptyResponse(t *testing.T) { err := GetAPIError(context.Background(), resp) assert.Equal(t, err.(*APIError).Message, "") } + +func TestIsMissing_APIError(t *testing.T) { + assert.True(t, IsMissing(&APIError{ + ErrorCode: "RESOURCE_DOES_NOT_EXIST", + })) + assert.False(t, IsMissing(&APIError{ + ErrorCode: "RESOURCE_ALREADY_EXISTS", + })) +} + +func TestIsMissing_BaseError(t *testing.T) { + assert.True(t, IsMissing(ErrNotFound)) + assert.False(t, IsMissing(ErrResourceConflict)) +} From eea1deab32db340e66fb438a4ac6df3bde0f272f Mon Sep 17 00:00:00 2001 From: Miles Yucht Date: Tue, 16 Jan 2024 10:10:27 +0100 Subject: [PATCH 6/6] udno --- apierr/errors.go | 10 +++++++--- apierr/errors_test.go | 14 -------------- 2 files changed, 7 insertions(+), 17 deletions(-) diff --git a/apierr/errors.go b/apierr/errors.go index 940571a59..f794cc62a 100644 --- a/apierr/errors.go +++ b/apierr/errors.go @@ -65,7 +65,11 @@ func (apiError *APIError) Error() string { // IsMissing tells if error is about missing resource func IsMissing(err error) bool { - return errors.Is(err, ErrNotFound) + var apiError *APIError + if errors.As(err, &apiError) { + return apiError.IsMissing() + } + return false } // GetErrorInfo returns all entries in the list of error details of type `ErrorInfo`. @@ -89,12 +93,12 @@ func getDetailsByType(err error, errorDetailType string) []ErrorDetail { // IsMissing tells if it is missing resource func (apiError *APIError) IsMissing() bool { - return errors.Is(apiError, ErrNotFound) + return apiError.StatusCode == http.StatusNotFound } // IsTooManyRequests shows rate exceeded limits func (apiError *APIError) IsTooManyRequests() bool { - return errors.Is(apiError, ErrTooManyRequests) + return apiError.StatusCode == http.StatusTooManyRequests } // isRetriable returns true if error is retriable diff --git a/apierr/errors_test.go b/apierr/errors_test.go index dfd92760e..309f7f244 100644 --- a/apierr/errors_test.go +++ b/apierr/errors_test.go @@ -22,17 +22,3 @@ func TestGetAPIErrorHandlesEmptyResponse(t *testing.T) { err := GetAPIError(context.Background(), resp) assert.Equal(t, err.(*APIError).Message, "") } - -func TestIsMissing_APIError(t *testing.T) { - assert.True(t, IsMissing(&APIError{ - ErrorCode: "RESOURCE_DOES_NOT_EXIST", - })) - assert.False(t, IsMissing(&APIError{ - ErrorCode: "RESOURCE_ALREADY_EXISTS", - })) -} - -func TestIsMissing_BaseError(t *testing.T) { - assert.True(t, IsMissing(ErrNotFound)) - assert.False(t, IsMissing(ErrResourceConflict)) -}